In the specification looking at daily price volatility the dependent variable of interest is the standard deviation of hourly prices per day. We have the advantage of being able to model the volatility of hourly prices directly with gets.
The below specifications replicate the results reported in Rintamaki et al for daily price volatility. Unfortunately, gas spot prices are not provided in their replication data as they are proprietary (available via Bloomberg portal) - those specs have been commented out below.
Pulled from replication data available at: https://doi-org.ezproxy-prd.bodleian.ox.ac.uk/10.1016/j.eneco.2016.12.019
# Required including "here("code/rintamaki_replication/data/" to data read commands in the listed files
source(here("code/rintamaki_replication/models/read_daily_data.R"))
daily_forms <- list(
# SPECS FOR DK1
list(vol_dk1, wind_dk1, 2, 1, 2, 1, 7),
list(vol_dk1, wind_pen_dk1, 2, 1, 2, 1, 7),
list(vol_dk1, cbind(wind_dk1, exim_op1_dk1, exim_op2_dk1, exim_p_dk1), 2, 1, 2, 1, 7),
list(vol_dk1, cbind(wind_dk1, exim_op1_dk1, exim_p_dk1), 2, 1, 2, 1, 7),
list(vol_dk1, cbind(wind_pen_dk1, exim_op1_dk1, exim_p_dk1), 2, 1, 2, 1, 7),
#list(fwd1(vol_dk1), list(fwd1(wind_dk1), diff(gas_dk1))),
#SPECS FOR DK2
list(vol_dk2, wind_dk2, 2, 1, 2, 1, 7),
list(vol_dk2, wind_pen_dk2, 2, 1, 2, 1, 7),
list(vol_dk2, cbind(wind_dk2, exim_op1_dk2, exim_op2_dk2, exim_p_dk2), 2, 1, 2, 1, 7),
list(vol_dk2, cbind(wind_dk2, exim_op1_dk2, exim_p_dk2), 2, 1, 2, 1, 7),
list(vol_dk2, cbind(wind_pen_dk2, exim_op1_dk2, exim_p_dk2), 2, 1, 2, 1, 7),
#list(fwd1(vol_dk2), list(fwd1(wind_dk2), diff(gas_dk2))),
# SPECS FOR DE
list(vol_de, wind_de, 2, 1, 2, 1, 7),
list(fwd1(vol_de), diff(solar_de), 2, 1, 2, 1, 7),
list(fwd1(vol_de), cbind(fwd1(wind_de), diff(solar_de)), 2, 1, 2, 1, 7),
list(vol_de, res_de, 2, 1, 2, 1, 7),
list(vol_de, wind_pen_de, 2, 1, 2, 1, 7),
list(fwd1(vol_de), diff(solar_pen_de), 2, 1, 2, 1, 7),
list(vol_de, res_pen_de, 2, 1, 2, 1, 7),
list(fwd1(vol_de), cbind(fwd1(wind_de), diff(solar_de), fwd1(exim_op1_de), fwd1(exim_op2_de), fwd1(exim_p_de)), 2, 1, 2, 1, 7))
#list(fwd1(vol_de), list(fwd1(wind_de), diff(solar_de), diff(gas_de))))
daily_res <- lapply(daily_forms, function(x) do.call(fitModel, x))
## Warning in arima(y, order = c(p, 0, q), seasonal = list(order = c(P, 0, :
## possible convergence problem: optim gave code = 1
## Warning in arima(y, order = c(p, 0, q), seasonal = list(order = c(P, 0, :
## possible convergence problem: optim gave code = 1
## Warning in arima(y, order = c(p, 0, q), seasonal = list(order = c(P, 0, :
## possible convergence problem: optim gave code = 1
daily_res %>%
modelsummary
| Â (1) | Â Â (2) | Â Â (3) | Â Â (4) | Â Â (5) | Â Â (6) | Â Â (7) | Â Â (8) | Â Â (9) | Â Â (10) | Â Â (11) | Â Â (12) | Â Â (13) | Â Â (14) | Â Â (15) | Â Â (16) | Â Â (17) | Â Â (18) | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ar1 | 1.224 | 1.221 | 1.255 | 1.245 | 1.244 | 1.233 | 1.228 | 1.269 | 1.231 | 1.229 | 1.151 | 1.166 | 1.161 | 1.155 | 1.152 | 1.166 | 1.153 | 1.151 |
| (0.039) | (0.039) | (0.038) | (0.039) | (0.039) | (0.053) | (0.054) | (0.051) | (0.054) | (0.053) | (0.036) | (0.036) | (0.031) | (0.048) | (0.024) | (0.036) | (0.036) | (0.038) | |
| ar2 | −0.253 | −0.250 | −0.279 | −0.273 | −0.272 | −0.268 | −0.264 | −0.297 | −0.268 | −0.266 | −0.162 | −0.175 | −0.171 | −0.166 | −0.163 | −0.176 | −0.164 | −0.163 |
| (0.033) | (0.032) | (0.033) | (0.033) | (0.033) | (0.041) | (0.042) | (0.041) | (0.042) | (0.042) | (0.034) | (0.034) | (0.032) | (0.040) | (0.025) | (0.034) | (0.035) | (0.035) | |
| ma1 | −0.864 | −0.863 | −0.870 | −0.867 | −0.867 | −0.838 | −0.836 | −0.852 | −0.833 | −0.833 | −0.916 | −0.917 | −0.919 | −0.915 | −0.917 | −0.915 | −0.914 | −0.928 |
| (0.029) | (0.029) | (0.026) | (0.028) | (0.028) | (0.043) | (0.044) | (0.040) | (0.044) | (0.043) | (0.018) | (0.019) | (0.015) | (0.031) | (0.015) | (0.018) | (0.019) | (0.021) | |
| sar1 | 1.071 | 1.071 | 1.081 | 1.075 | 1.075 | 1.105 | 1.106 | 1.107 | 1.105 | 1.106 | 1.177 | 1.172 | 1.175 | 1.174 | 1.177 | 1.172 | 1.174 | 1.169 |
| (0.025) | (0.025) | (0.025) | (0.026) | (0.026) | (0.025) | (0.025) | (0.025) | (0.025) | (0.025) | (0.032) | (0.032) | (0.030) | (0.034) | (0.032) | (0.032) | (0.032) | (0.032) | |
| sar2 | −0.073 | −0.072 | −0.082 | −0.077 | −0.077 | −0.106 | −0.107 | −0.107 | −0.105 | −0.106 | −0.177 | −0.172 | −0.175 | −0.174 | −0.177 | −0.172 | −0.174 | −0.169 |
| (0.025) | (0.025) | (0.025) | (0.025) | (0.025) | (0.025) | (0.025) | (0.025) | (0.025) | (0.025) | (0.032) | (0.032) | (0.030) | (0.034) | (0.032) | (0.032) | (0.032) | (0.032) | |
| sma1 | −0.980 | −0.980 | −0.983 | −0.979 | −0.979 | −0.989 | −0.990 | −0.990 | −0.988 | −0.989 | −0.990 | −0.991 | −0.987 | −0.989 | −0.989 | −0.991 | −0.990 | −0.989 |
| (0.008) | (0.008) | (0.007) | (0.008) | (0.008) | (0.006) | (0.006) | (0.006) | (0.006) | (0.006) | (0.005) | (0.000) | (0.010) | (0.019) | (0.024) | (0.009) | (0.001) | (0.001) | |
| intercept | 2.392 | 1.708 | 2.253 | 2.357 | 1.661 | 2.207 | 1.714 | 2.101 | 2.155 | 1.729 | 1.916 | 2.270 | 2.001 | 2.085 | 2.322 | 2.243 | 2.277 | 1.931 |
| (0.344) | (0.318) | (0.402) | (0.343) | (0.309) | (0.440) | (0.444) | (0.489) | (0.418) | (0.421) | (0.551) | (0.605) | (0.568) | (0.601) | (0.531) | (0.570) | (0.572) | (0.467) | |
| ext | −0.089 | −0.087 | −0.070 | −0.064 | 0.033 | −0.038 | 0.017 | 0.035 | −0.047 | 0.020 | ||||||||
| (0.016) | (0.016) | (0.015) | (0.015) | (0.015) | (0.019) | (0.023) | (0.015) | (0.019) | (0.022) | |||||||||
| wind_dk1 | −0.073 | −0.091 | ||||||||||||||||
| (0.019) | (0.019) | |||||||||||||||||
| exim_op1_dk1 | 0.064 | 0.100 | 0.102 | |||||||||||||||
| (0.033) | (0.033) | (0.033) | ||||||||||||||||
| exim_op2_dk1 | −0.224 | |||||||||||||||||
| (0.031) | ||||||||||||||||||
| exim_p_dk1 | 0.078 | −0.081 | −0.085 | |||||||||||||||
| (0.037) | (0.031) | (0.031) | ||||||||||||||||
| wind_pen_dk1 | −0.088 | |||||||||||||||||
| (0.020) | ||||||||||||||||||
| wind_dk2 | −0.052 | −0.060 | ||||||||||||||||
| (0.016) | (0.017) | |||||||||||||||||
| exim_op1_dk2 | −0.015 | −0.007 | −0.012 | |||||||||||||||
| (0.042) | (0.043) | (0.043) | ||||||||||||||||
| exim_op2_dk2 | −0.304 | |||||||||||||||||
| (0.040) | ||||||||||||||||||
| exim_p_dk2 | 0.145 | −0.047 | −0.052 | |||||||||||||||
| (0.048) | (0.042) | (0.042) | ||||||||||||||||
| wind_pen_dk2 | −0.054 | |||||||||||||||||
| (0.017) | ||||||||||||||||||
| ext1 | 0.030 | 0.037 | ||||||||||||||||
| (0.015) | (0.015) | |||||||||||||||||
| ext2 | −0.035 | −0.020 | ||||||||||||||||
| (0.019) | (0.019) | |||||||||||||||||
| ext3 | 0.085 | |||||||||||||||||
| (0.012) | ||||||||||||||||||
| ext4 | 0.022 | |||||||||||||||||
| (0.013) | ||||||||||||||||||
| ext5 | −0.078 | |||||||||||||||||
| (0.014) | ||||||||||||||||||
| Num.Obs. | 1826 | 1826 | 1826 | 1826 | 1826 | 1826 | 1826 | 1826 | 1826 | 1826 | 1096 | 1095 | 1095 | 1096 | 1096 | 1095 | 1096 | 1095 |
| AIC | 2880.8 | 2883.5 | 2822.5 | 2873.6 | 2875.7 | 3161.9 | 3165.3 | 3108.3 | 3164.2 | 3166.8 | 489.7 | 490.6 | 488.6 | 494.2 | 489.1 | 488.4 | 493.9 | 436.1 |
| BIC | 2930.4 | 2933.1 | 2888.6 | 2934.2 | 2936.3 | 3211.5 | 3214.9 | 3174.4 | 3224.8 | 3227.4 | 534.7 | 535.6 | 538.6 | 539.2 | 534.1 | 533.4 | 538.9 | 501.1 |
| RMSE | 0.53 | 0.53 | 0.52 | 0.53 | 0.53 | 0.57 | 0.57 | 0.56 | 0.57 | 0.57 | 0.30 | 0.30 | 0.30 | 0.30 | 0.30 | 0.30 | 0.30 | 0.29 |
This is where we have our current comparative advantage in that we can model hourly price volatility directly.
# Loads hourly price data for de, dk1, dk2
for(cty in c('dk1', 'dk2', 'de')){
temp <- read_xlsx(here('code/rintamaki_replication/data/raw_data.xlsx'), sheet = cty) %>%
clean_names
assign(paste0("data_", cty), temp)
}
data_de %>%
ggplot(aes(x = date, y = de_price)) +
geom_line() +
labs(title = "Germany: Hourly Electricity Prices", y = "Hourly Electricity Price", x = "Date")
# Check to make sure data is ordered
data_de %>% arrange(date, hour) %>% identical(data_de)
## [1] TRUE
# The below model incorporates ARCH(24) to be selected over, available regressors for wind forecasts, solar forecasts, and imports to and from France. In line with Rintamaki et al, we incorporate moving average terms for half-day, daily, and weekly prices volatility (levels?). Seasonal moving average terms are not yet incorporated here as they are in Rintamaki et al. Rather we might want to consider the seasonal moving average to have a periodicity of 24 hours (moving average over the same time of day)
de_mod <- arx(data_de$de_price,
# Include 24 ARCH terms to be selected over
# Question: In theory, the ARCH(24) would proxy the seasonal (daily) AR term?
arch = 1:24,
# Additional regressors to select over (only wind forecasts, solar forecasts, and imports between Germany and France are available at hourly frequency in the replication data)
# Worth doing additional data scoping
# Also perhaps worth including additional indicators for time of day (assuming this variation is not mopped up by the moving average terms)
vxreg = as.matrix(data_de[c('de_wind_fcast', 'de_solar_fcast', 'de_fr', 'fr_de')]),
# As in Rintamaki et al. the below line incorporates moving average terms for the half-day (12), day (24 hours) and week (168 hours)
log.ewma = c(12, 24, 168))
## Warning in arx(data_de$de_price, arch = 1:24, vxreg = as.matrix(data_de[c("de_wind_fcast", :
##
## New default 'mc = TRUE' in arx() as of version 0.28
## This warning only appears the first time arx() is invoked
## To suppress this warning, set options(mc.warning = FALSE)
# Perform gets model selection over the log-variance model above
# Turn of ARCH diagnostics as the GUM does not pass (could possible manipulate lag and p value choice here)
de_vmod <- getsv(de_mod, t.pval = 0.001, ar.LjungB = NULL)
## GUM log-variance equation:
##
## reg.no. keep coef std.error t-stat p-value
## vconst 1 1 1.8954e+00 1.0014e-01 358.2185 < 2.2e-16 ***
## arch1 2 0 5.8181e-01 6.2374e-03 93.2783 < 2.2e-16 ***
## arch2 3 0 -3.5317e-03 7.2259e-03 -0.4888 0.6250156
## arch3 4 0 -3.5501e-02 7.2242e-03 -4.9142 8.967e-07 ***
## arch4 5 0 -1.0043e-02 7.2186e-03 -1.3913 0.1641497
## arch5 6 0 -3.3139e-02 7.2133e-03 -4.5942 4.364e-06 ***
## arch6 7 0 -1.1185e-02 7.2128e-03 -1.5506 0.1210008
## arch7 8 0 -3.2399e-02 7.2134e-03 -4.4915 7.103e-06 ***
## arch8 9 0 -8.7058e-03 7.2241e-03 -1.2051 0.2281732
## arch9 10 0 -1.3099e-03 7.2319e-03 -0.1811 0.8562671
## arch10 11 0 -1.6037e-02 7.2305e-03 -2.2180 0.0265629 *
## arch11 12 0 -1.0092e-03 7.2273e-03 -0.1396 0.8889439
## arch12 13 0 -2.0967e-02 7.1982e-03 -2.9128 0.0035855 **
## arch13 14 0 -1.8687e-02 7.1691e-03 -2.6067 0.0091480 **
## arch14 15 0 -7.0670e-03 7.1822e-03 -0.9840 0.3251394
## arch15 16 0 -2.2407e-02 7.1833e-03 -3.1193 0.0018146 **
## arch16 17 0 -3.7778e-03 7.1829e-03 -0.5259 0.5989277
## arch17 18 0 -2.3916e-02 7.1811e-03 -3.3304 0.0008684 ***
## arch18 19 0 8.3342e-03 7.1800e-03 1.1608 0.2457487
## arch19 20 0 -4.5284e-03 7.1834e-03 -0.6304 0.5284426
## arch20 21 0 -5.3013e-03 7.1845e-03 -0.7379 0.4605924
## arch21 22 0 -9.2692e-04 7.1901e-03 -0.1289 0.8974256
## arch22 23 0 1.3481e-02 7.1919e-03 1.8744 0.0608876 .
## arch23 24 0 6.4164e-02 7.1902e-03 8.9239 < 2.2e-16 ***
## arch24 25 0 1.2186e-01 6.1825e-03 19.7100 < 2.2e-16 ***
## logEqWMA(12) 26 0 3.0409e-01 2.7297e-02 11.1402 < 2.2e-16 ***
## logEqWMA(24) 27 0 4.1168e-02 3.4000e-02 1.2108 0.2259724
## logEqWMA(168) 28 0 -3.9480e-03 2.1543e-02 -0.1833 0.8545958
## de_wind_fcast 29 0 7.4541e-06 2.2588e-06 3.3000 0.0009681 ***
## de_solar_fcast 30 0 -4.8653e-06 1.9912e-06 -2.4434 0.0145561 *
## de_fr 31 0 -1.5198e-04 1.1846e-05 -12.8305 < 2.2e-16 ***
## fr_de 32 0 -5.7088e-05 2.0817e-05 -2.7424 0.0061024 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Diagnostics:
##
## Chi-sq df p-value
## Ljung-Box AR(1) 3325.5273 1 0
## Ljung-Box ARCH(25) 3.8785 25 1
## 21 path(s) to search
## Searching: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
##
## Path 1: 3 22 12 10 28 17 20 15 19 21 27 5 9 7 23 30 32 13
## Path 2: 5 12 22 10 28 3 17 20 15 19 21 27 9 7 23 30 32 13
## Path 3: 7 12 22 10 28 3 17 20 15 19 21 27 5 9 23 30 32 13
## Path 4: 9 12 22 28 3 17 20 10 15 19 21 27 5 7 23 30 32 13
## Path 5: 10 22 12 28 3 17 20 15 19 21 27 5 9 7 23 30 32 13
## Path 6: 11 28 22 3 17 20 15 19 21 27 12 9 5 7 10 23 32 30 -14
## Path 7: 12 22 28 10 3 17 20 15 19 21 27 5 9 7 23 30 32 13
## Path 8: 13 10 28 22 3 17 20 19 15 21 27 5 9 12 7 23 30 32
## Path 9: 14 22 28 12 10 17 3 20 27 21 19 9 5 7 15 23 30 32 -11
## Path 10: 15 22 12 28 10 3 17 20 19 21 27 5 9 7 23 30 32 13
## Path 11: 16 28 22 12 10 3 20 27 21 19 9 5 7 17 23 14 -30 -32 -11
## Path 12: 17 22 12 28 10 3 20 15 19 21 27 5 9 7 23 30 32 13
## Path 13: 19 20 12 22 10 28 3 17 15 21 27 5 9 7 23 30 32 13
## Path 14: 20 22 12 28 10 3 17 15 19 21 27 5 9 7 23 30 32 13
## Path 15: 21 12 28 10 3 22 17 15 27 20 19 5 9 7 23 30 32 13
## Path 16: 22 12 28 10 3 17 20 15 19 21 27 5 9 7 23 30 32 13
## Path 17: 23 12 10 28 3 17 20 22 21 19 15 5 9 7 27 30 32 13
## Path 18: 27 22 12 10 28 17 20 3 15 21 19 5 9 7 23 30 32 13
## Path 19: 28 22 12 10 3 17 20 15 19 21 27 5 9 7 23 30 32 13
## Path 20: 30 22 12 28 10 17 3 20 15 19 21 27 5 9 7 23 32 13
## Path 21: 32 28 22 12 10 3 17 20 15 27 21 19 5 9 7 23 30 13
##
## Terminal models:
##
## info(sc) logl n k
## spec 1: 8.386333 -109534.0 26139 14
## spec 2: 8.394811 -109644.8 26139 14
## spec 3: 8.385634 -109524.8 26139 14
## spec 4: 8.380971 -109453.7 26139 16
##
## Retained regressors (final model):
##
## vconst arch1 arch3 arch5 arch7 arch10 arch12 arch14 arch17 arch23 arch24 logEqWMA(12) de_wind_fcast de_solar_fcast de_fr fr_de
de_vmod %>% plot
data_dk1 %>%
ggplot(aes(x = date, y = dk1_price)) +
geom_line() +
labs(main = "DK1: Hourly Electricity Prices")
data_dk1 %>% arrange(date, hour) %>% identical(data_dk1)
## [1] TRUE
# Same spec as above with appropriate corrections to the regressors
dk1_mod <- arx(data_dk1$dk1_price,
arch = 1:24,
vxreg = as.matrix(data_dk1[c("dk1_load_fcast", "dk1_wind_fcast", "dk1_no2", "no2_dk1", "dk1_se3", "se3_dk1")]),
log.ewma = c(12, 24, 168))
# Perform gets model selection over the log-variance model above
dk1_vmod <- getsv(dk1_mod, t.pval = 0.001, ar.LjungB = NULL)
## GUM log-variance equation:
##
## reg.no. keep coef std.error t-stat p-value
## vconst 1 1 2.0172e+00 5.4321e-02 1379.0242 < 2.2e-16 ***
## arch1 2 0 6.0445e-01 4.8399e-03 124.8876 < 2.2e-16 ***
## arch2 3 0 3.0277e-02 5.6434e-03 5.3650 8.136e-08 ***
## arch3 4 0 -1.7644e-02 5.6403e-03 -3.1282 0.001760 **
## arch4 5 0 -1.2948e-02 5.6355e-03 -2.2977 0.021586 *
## arch5 6 0 -1.7261e-02 5.6325e-03 -3.0646 0.002181 **
## arch6 7 0 1.4257e-03 5.6321e-03 0.2531 0.800157
## arch7 8 0 -4.6656e-03 5.6308e-03 -0.8286 0.407345
## arch8 9 0 -1.1409e-02 5.6288e-03 -2.0268 0.042686 *
## arch9 10 0 3.1481e-03 5.6334e-03 0.5588 0.576277
## arch10 11 0 -7.0138e-03 5.6371e-03 -1.2442 0.213423
## arch11 12 0 -1.3609e-02 5.6385e-03 -2.4137 0.015797 *
## arch12 13 0 -2.3295e-02 5.6207e-03 -4.1445 3.411e-05 ***
## arch13 14 0 1.6176e-02 5.5976e-03 2.8898 0.003857 **
## arch14 15 0 -9.1378e-03 5.6031e-03 -1.6309 0.102929
## arch15 16 0 3.6041e-03 5.6050e-03 0.6430 0.520217
## arch16 17 0 -2.7019e-03 5.6056e-03 -0.4820 0.629813
## arch17 18 0 9.9656e-03 5.6073e-03 1.7773 0.075533 .
## arch18 19 0 -6.3015e-03 5.6078e-03 -1.1237 0.261142
## arch19 20 0 6.9875e-03 5.6080e-03 1.2460 0.212770
## arch20 21 0 1.1826e-02 5.6071e-03 2.1092 0.034936 *
## arch21 22 0 1.8614e-02 5.6071e-03 3.3197 0.000902 ***
## arch22 23 0 2.4458e-02 5.6079e-03 4.3613 1.296e-05 ***
## arch23 24 0 7.6882e-02 5.6049e-03 13.7168 < 2.2e-16 ***
## arch24 25 0 8.5187e-02 4.7824e-03 17.8126 < 2.2e-16 ***
## logEqWMA(12) 26 0 1.9586e-01 1.7495e-02 11.1952 < 2.2e-16 ***
## logEqWMA(24) 27 0 -4.7579e-02 1.8586e-02 -2.5600 0.010470 *
## logEqWMA(168) 28 0 2.2026e-02 1.0175e-02 2.1647 0.030418 *
## dk1_load_fcast 29 0 2.9724e-07 1.4970e-05 0.0199 0.984158
## dk1_wind_fcast 30 0 7.0917e-05 1.0943e-05 6.4808 9.219e-11 ***
## dk1_no2 31 0 -6.9258e-05 2.3247e-05 -2.9792 0.002892 **
## no2_dk1 32 0 -1.3200e-04 2.3125e-05 -5.7080 1.150e-08 ***
## dk1_se3 33 0 5.4250e-05 3.6553e-05 1.4842 0.137774
## se3_dk1 34 0 -2.9485e-06 3.3375e-05 -0.0883 0.929602
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Diagnostics:
##
## Chi-sq df p-value
## Ljung-Box AR(1) 2396.4839 1 0.00000
## Ljung-Box ARCH(25) 5.7287 25 0.99998
## 23 path(s) to search
## Searching: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
##
## Path 1: 4 29 34 7 17 16 10 8 11 19 20 33 15 18 28 27 14 -31 -21 -9 -12 -22
## Path 2: 5 29 34 7 17 16 10 8 11 19 20 33 15 18 28 27 14 31 -9 -21 -12 -22
## Path 3: 6 29 34 17 16 10 8 11 19 20 33 15 18 7 28 27 14 -31 -12 -21 -4 -22
## Path 4: 7 29 34 17 16 10 8 11 19 20 33 15 18 28 27 5 14 31 -9 -21 -12 -22
## Path 5: 8 29 34 7 17 16 10 11 19 20 33 15 18 28 27 5 14 31 -9 -21 -12 -22
## Path 6: 9 29 34 7 10 17 16 19 20 11 33 15 18 5 28 27 8 14 -31 -21 -22
## Path 7: 10 29 34 7 17 16 8 11 19 20 33 15 18 28 27 5 14 31 -9 -21 -12 -22
## Path 8: 11 29 10 34 7 17 16 8 19 20 33 15 18 28 27 5 14 31 -9 -21 -12 -22
## Path 9: 12 29 34 7 17 16 10 8 19 20 33 15 18 5 28 27 14 11 -31 -21 -22
## Path 10: 14 29 34 7 15 17 16 10 8 11 19 20 33 18 27 28 5 31 -9 -21 -12 -22
## Path 11: 15 29 16 34 7 10 17 8 11 19 20 33 18 28 27 5 14 31 -9 -21 -12 -22
## Path 12: 16 29 34 17 7 10 8 11 19 20 33 15 18 28 27 5 14 31 -9 -21 -12 -22
## Path 13: 17 29 34 7 16 10 8 11 19 20 33 15 18 28 27 5 14 31 -9 -21 -12 -22
## Path 14: 18 29 34 7 17 19 10 8 16 11 15 20 33 28 27 5 14 31 -9 -21 -12 -22
## Path 15: 19 29 34 7 17 16 10 8 20 11 33 15 18 28 27 5 14 31 -9 -21 -12 -22
## Path 16: 20 29 34 7 17 16 10 19 8 11 33 15 18 28 27 5 14 31 -9 -21 -12 -22
## Path 17: 21 29 34 7 17 16 10 8 19 11 18 15 33 28 27 14 5 20 -31 -12 -9
## Path 18: 27 29 34 7 16 17 10 8 11 20 19 18 33 28 15 5 14 31 -9 -21 -12 -22
## Path 19: 28 34 29 7 17 16 10 8 11 19 20 15 18 33 27 5 14 31 -9 -21 -12 -22
## Path 20: 29 34 7 17 16 10 8 11 19 20 33 15 18 28 27 5 14 31 -9 -21 -12 -22
## Path 21: 31 34 7 29 17 16 10 8 11 19 20 33 15 18 28 27 5 14 -9 -21 -12 -22
## Path 22: 33 29 7 17 16 10 34 8 11 19 20 15 18 28 27 5 14 31 -9 -21 -12 -22
## Path 23: 34 29 7 17 16 10 8 11 19 20 33 15 18 28 27 5 14 31 -9 -21 -12 -22
##
## Terminal models:
##
## info(sc) logl n k
## spec 1: 8.671951 -189222.2 43661 17
## spec 2: 8.687761 -189572.7 43661 16
## spec 3: 8.687266 -189556.5 43661 17
## spec 4: 8.692836 -189683.5 43661 16
## spec 5: 8.686429 -189543.6 43661 16
## spec 6: 8.682763 -189463.6 43661 16
##
## Retained regressors (final model):
##
## vconst arch1 arch2 arch4 arch5 arch8 arch11 arch12 arch20 arch21 arch22 arch23 arch24 logEqWMA(12) dk1_wind_fcast dk1_no2 no2_dk1
dk1_vmod %>% plot
data_dk2 %>%
ggplot(aes(x = date, y = dk2_price)) +
geom_line() +
labs(main = "DK2: Hourly Electricity Prices")
data_dk2 %>% arrange(date, hour) %>% identical(data_dk2)
## [1] TRUE
# Same spec as above with appropriate corrections to the regressors
dk2_mod <- arx(data_dk2$dk2_price,
arch = 1:24,
vxreg = as.matrix(data_dk2[c("dk2_load_fcast", "dk2_wind_fcast",
"dk2_se4","dk2_se4_2")]),
log.ewma = c(12, 24, 168))
# Perform gets model selection over the log-variance model above
dk2_vmod <- getsv(dk2_mod, t.pval = 0.001, ar.LjungB = NULL)
## GUM log-variance equation:
##
## reg.no. keep coef std.error t-stat p-value
## vconst 1 1 2.2187e+00 4.4496e-02 2486.3454 < 2.2e-16 ***
## arch1 2 0 6.2910e-01 4.8220e-03 130.4648 < 2.2e-16 ***
## arch2 3 0 3.0162e-04 5.6846e-03 0.0531 0.957685
## arch3 4 0 -1.2263e-02 5.6794e-03 -2.1592 0.030839 *
## arch4 5 0 -1.2063e-02 5.6739e-03 -2.1260 0.033507 *
## arch5 6 0 -5.9613e-03 5.6698e-03 -1.0514 0.293074
## arch6 7 0 -1.5173e-02 5.6686e-03 -2.6767 0.007438 **
## arch7 8 0 1.8626e-03 5.6688e-03 0.3286 0.742487
## arch8 9 0 -1.9672e-03 5.6704e-03 -0.3469 0.728651
## arch9 10 0 -4.3919e-03 5.6709e-03 -0.7745 0.438667
## arch10 11 0 1.0484e-02 5.6759e-03 1.8472 0.064731 .
## arch11 12 0 -2.7936e-02 5.6785e-03 -4.9196 8.702e-07 ***
## arch12 13 0 -1.6450e-02 5.6647e-03 -2.9040 0.003686 **
## arch13 14 0 9.6957e-03 5.6439e-03 1.7179 0.085822 .
## arch14 15 0 2.6291e-03 5.6485e-03 0.4654 0.641614
## arch15 16 0 4.4085e-04 5.6506e-03 0.0780 0.937815
## arch16 17 0 -1.3189e-03 5.6509e-03 -0.2334 0.815451
## arch17 18 0 4.9549e-03 5.6517e-03 0.8767 0.380651
## arch18 19 0 -1.5177e-03 5.6527e-03 -0.2685 0.788322
## arch19 20 0 -3.0555e-04 5.6523e-03 -0.0541 0.956889
## arch20 21 0 1.6525e-02 5.6521e-03 2.9237 0.003460 **
## arch21 22 0 1.6383e-02 5.6523e-03 2.8984 0.003753 **
## arch22 23 0 3.1062e-02 5.6520e-03 5.4958 3.910e-08 ***
## arch23 24 0 8.3581e-02 5.6530e-03 14.7851 < 2.2e-16 ***
## arch24 25 0 1.0642e-01 4.7691e-03 22.3151 < 2.2e-16 ***
## logEqWMA(12) 26 0 1.8053e-01 1.6245e-02 11.1126 < 2.2e-16 ***
## logEqWMA(24) 27 0 -7.4563e-02 1.7611e-02 -4.2339 2.302e-05 ***
## logEqWMA(168) 28 0 2.2178e-02 9.5550e-03 2.3211 0.020285 *
## dk2_load_fcast 29 0 -1.0045e-05 1.9782e-05 -0.5078 0.611615
## dk2_wind_fcast 30 0 1.3429e-04 3.0722e-05 4.3712 1.239e-05 ***
## dk2_se4 31 0 7.6436e-06 2.1887e-05 0.3492 0.726915
## dk2_se4_2 32 0 -1.1370e-04 1.6364e-05 -6.9482 3.752e-12 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Diagnostics:
##
## Chi-sq df p-value
## Ljung-Box AR(1) 1633.88530 1 0
## Ljung-Box ARCH(25) 0.60547 25 1
## 22 path(s) to search
## Searching: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
##
## Path 1: 3 20 16 17 19 8 9 31 15 29 18 10 6 11 28 4 14 13 22 -27
## Path 2: 4 20 16 17 9 8 31 19 29 15 10 18 3 6 11 28 14 13 22 -27
## Path 3: 5 3 20 16 17 9 8 31 19 15 29 10 18 11 6 28 14 13 22 -27
## Path 4: 6 16 20 3 17 8 9 31 19 15 29 10 18 11 28 4 14 13 22 -27
## Path 5: 7 20 16 3 17 19 31 9 15 29 18 10 8 11 5 28 14 13 22 -27
## Path 6: 8 3 20 16 17 9 19 31 15 29 18 10 6 11 28 4 14 13 22 -27
## Path 7: 9 20 3 16 8 17 19 31 15 29 18 10 6 11 28 4 14 13 22 -27
## Path 8: 10 3 20 16 17 8 19 31 15 29 9 18 6 11 28 4 14 13 22 -27
## Path 9: 11 3 10 20 16 17 8 9 19 31 15 29 18 6 28 4 14 13 22 -27
## Path 10: 13 3 16 20 17 9 8 19 31 14 29 18 10 6 15 11 28 4 22 -27
## Path 11: 14 3 20 16 17 8 9 31 19 29 18 10 6 11 15 13 28 4 22 -27
## Path 12: 15 3 20 17 16 8 9 19 31 29 18 10 6 11 28 4 14 13 22 -27
## Path 13: 16 3 20 17 19 8 9 31 15 29 18 10 6 11 28 4 14 13 22 -27
## Path 14: 17 16 3 20 19 8 9 31 15 29 18 10 6 11 28 4 14 13 22 -27
## Path 15: 18 20 3 16 19 17 9 8 31 29 15 10 6 11 28 4 14 13 22 -27
## Path 16: 19 3 16 20 17 8 9 31 15 29 18 10 6 11 28 4 14 13 22 -27
## Path 17: 20 3 16 17 19 8 9 31 15 29 18 10 6 11 28 4 14 13 22 -27
## Path 18: 21 3 16 19 17 8 9 31 15 29 18 10 6 11 20 28 4 14 13 -27
## Path 19: 22 16 3 20 17 9 8 19 31 15 29 18 10 6 11 28 4 14 13 -27
## Path 20: 28 3 20 16 29 17 8 9 19 15 31 18 10 6 11 4 14 13 22 -27
## Path 21: 29 20 3 16 17 19 8 9 31 15 18 10 6 11 28 4 14 13 22 -27
## Path 22: 31 20 3 16 17 19 8 9 15 29 18 10 6 11 28 4 14 13 22 -27
##
## Terminal models:
##
## info(sc) logl n k
## spec 1: 9.078499 -198118.7 43661 13
## spec 2: 9.107696 -198756.1 43661 13
## spec 3: 9.109620 -198798.1 43661 13
## spec 4: 9.077464 -198096.1 43661 13
##
## Retained regressors (final model):
##
## vconst arch1 arch4 arch6 arch11 arch21 arch22 arch23 arch24 logEqWMA(12) logEqWMA(24) dk2_wind_fcast dk2_se4_2
dk2_vmod %>% plot
Pulled from replication data available at:https://doi-org.ezproxy-prd.bodleian.ox.ac.uk/10.1016/j.eneco.2016.12.019
# Required including "here("code/rintamaki_replication/data/" to data read commands in the listed files
source(here("code/rintamaki_replication/models/read_weekly_data.R"))
weekly_forms <- list(
# SPECS FOR DK1
list(vol_dk1, wind_dk1, 1, 0, 0, 1, 4),
list(fwd1(vol_dk1), cbind(fwd1(wind_dk1), diff(exim_dk1)), 1, 0, 0, 1, 4),
list(vol_dk1, wind_std_dk1, 1, 0, 0, 1, 4),
# SPECS FOR DK2
list(vol_dk2, wind_dk2, 1, 0, 0, 1, 4),
list(vol_dk2, wind_std_dk2, 1, 0, 0, 1, 4),
# SPECS FOR DE
list(fwd1(vol_de), diff(wind_de), 1, 0, 0, 0, 4),
list(fwd1(vol_de), diff(solar_de), 1, 0, 0, 0, 4),
list(vol_de, res_de, 1, 0, 0, 0, 4),
list(fwd1(vol_de), cbind(diff(wind_de), fwd1(exim_de)), 1, 0, 0, 0, 4))
weekly_res <- lapply(weekly_forms, function(x) do.call(fitModel, x))
weekly_res %>%
modelsummary
| Â (1) | Â Â (2) | Â Â (3) | Â Â (4) | Â Â (5) | Â Â (6) | Â Â (7) | Â Â (8) | Â Â (9) | |
|---|---|---|---|---|---|---|---|---|---|
| ar1 | 0.307 | 0.304 | 0.303 | 0.345 | 0.346 | 0.168 | 0.206 | 0.173 | 0.156 |
| (0.059) | (0.060) | (0.059) | (0.060) | (0.060) | (0.082) | (0.079) | (0.080) | (0.084) | |
| sma1 | 0.199 | 0.203 | 0.188 | 0.171 | 0.150 | ||||
| (0.062) | (0.063) | (0.061) | (0.068) | (0.067) | |||||
| intercept | 0.402 | 0.522 | −0.593 | 1.317 | 0.760 | 1.967 | 1.968 | 0.764 | 1.941 |
| (0.474) | (0.526) | (0.444) | (0.390) | (0.371) | (0.040) | (0.042) | (1.071) | (0.052) | |
| ext | 0.182 | 0.365 | 0.062 | 0.184 | 0.105 | −0.171 | 0.132 | ||
| (0.071) | (0.073) | (0.072) | (0.076) | (0.059) | (0.113) | (0.117) | |||
| ext1 | 0.164 | 0.110 | |||||||
| (0.079) | (0.060) | ||||||||
| ext2 | 0.041 | 0.028 | |||||||
| (0.076) | (0.037) | ||||||||
| Num.Obs. | 261 | 260 | 261 | 261 | 261 | 155 | 155 | 156 | 155 |
| AIC | 429.4 | 430.3 | 412.0 | 500.6 | 495.5 | 173.0 | 174.0 | 175.7 | 174.4 |
| BIC | 447.2 | 451.6 | 429.8 | 518.4 | 513.3 | 185.1 | 186.1 | 187.9 | 189.6 |
| RMSE | 0.54 | 0.54 | 0.52 | 0.62 | 0.61 | 0.41 | 0.41 | 0.41 | 0.41 |
for(cty in c('dk1', 'dk2', 'de')){
temp <- read_xlsx(here('code/rintamaki_replication/data/raw_data.xlsx'), sheet = cty) %>%
clean_names
assign(paste0("data_", cty), temp)
}
df_list <- list("data_de" = data_de, "data_dk1" = data_dk1, "data_dk2" = data_dk2)
for(n_df in names(df_list)){
df <- df_list[[n_df]]
temp <- df %>%
tibble %>%
# Certain days in October have multiple values for hour one across all countries...not sure why.
# Below I take the average of the duplicate observations but might be worth looking into why this is the case
group_by(date, hour) %>%
summarise(across(names(df)[!(names(df) %in% c("date", "hour", "month"))], ~mean(., na.rm = TRUE))) %>%
# Daily average price
group_by(date) %>%
select(-c("hour")) %>%
summarise(across(names(df)[!(names(df) %in% c("date", "hour", "month"))], ~mean(., na.rm = TRUE)))
assign(paste0("daily_", n_df), temp)
}
## `summarise()` has grouped output by 'date'. You can override using the
## `.groups` argument.
## `summarise()` has grouped output by 'date'. You can override using the
## `.groups` argument.
## `summarise()` has grouped output by 'date'. You can override using the
## `.groups` argument.
daily_data_de %>%
ggplot(aes(x = date, y = de_price)) +
geom_line() +
labs(main = "Germany: Daily Electricity Prices")
daily_data_de %>% arrange(date) %>% identical(daily_data_de)
## [1] TRUE
# equally-weighted moving averages are incorporated to account for daily moving averages (24 hours) and weekly moving averages (24 hours * 7 days)
# Might want to consider re-incorporating the seasonality dimension as well
daily_de_mod <- arx(daily_data_de$de_price,
# Include 24 ARCH terms to be selected over
# in theory, the ARHC(24) would proxy the seasonal AR term?
arch = 1:24,
# Additional regressors to select over (only wind forecasts, solar forecasts, and imports between Germany and France are available at hourly frequency in the replication data
# Worth doing additional data scoping
# Also perhaps worth including additional indicators for time of day (assuming this variation is not mopped up by the moving average terms)
vxreg = as.matrix(daily_data_de[c('de_load_fcast', 'de_wind_fcast', 'de_solar_fcast', 'de_fr', 'fr_de')]),
# As in Rintamaki et al. the below line incorporates moving average terms for the half-day (12), day (24 hours) and week (168 hours)
log.ewma = c(12, 24, 168))
# Seasonal moving average terms are not yet incorporated here as they are in Rintamaki et al. Rather we might want to consider the seasonal moving average to have a periodicity of 24 hours (moving average over the same time of day)
# Perform gets model selection over the log-variance model above
daily_de_vmod <- getsv(daily_de_mod, t.pval = 0.001, ar.LjungB = NULL)
## GUM log-variance equation:
##
## reg.no. keep coef std.error t-stat p-value
## vconst 1 1 5.1860e+00 1.1588e+00 20.0292 7.627e-06 ***
## arch1 2 0 1.7806e-01 3.3514e-02 5.3132 1.361e-07 ***
## arch2 3 0 1.7537e-03 3.4631e-02 0.0506 0.959625
## arch3 4 0 -6.3795e-02 3.4554e-02 -1.8462 0.065189 .
## arch4 5 0 2.8558e-02 3.4479e-02 0.8283 0.407741
## arch5 6 0 -5.1591e-02 3.4691e-02 -1.4871 0.137334
## arch6 7 0 7.8038e-03 3.4353e-02 0.2272 0.820344
## arch7 8 0 1.7124e-01 3.4315e-02 4.9903 7.245e-07 ***
## arch8 9 0 -2.9569e-02 3.4902e-02 -0.8472 0.397109
## arch9 10 0 -7.3610e-02 3.5043e-02 -2.1006 0.035958 *
## arch10 11 0 -1.9717e-02 3.4953e-02 -0.5641 0.572833
## arch11 12 0 1.2027e-04 3.4877e-02 0.0034 0.997249
## arch12 13 0 3.0124e-02 3.4662e-02 0.8691 0.385047
## arch13 14 0 2.8043e-02 3.4274e-02 0.8182 0.413465
## arch14 15 0 6.4897e-02 3.4719e-02 1.8692 0.061922 .
## arch15 16 0 2.2317e-02 3.4777e-02 0.6417 0.521220
## arch16 17 0 -3.2015e-02 3.4841e-02 -0.9189 0.358402
## arch17 18 0 -1.0580e-02 3.4665e-02 -0.3052 0.760272
## arch18 19 0 -9.4621e-03 3.3999e-02 -0.2783 0.780842
## arch19 20 0 -5.3204e-02 3.3852e-02 -1.5717 0.116381
## arch20 21 0 2.1831e-02 3.4042e-02 0.6413 0.521486
## arch21 22 0 6.9100e-02 3.4209e-02 2.0200 0.043684 *
## arch22 23 0 1.8586e-02 3.4164e-02 0.5440 0.586556
## arch23 24 0 -1.2442e-03 3.3995e-02 -0.0366 0.970813
## arch24 25 0 -4.7448e-02 3.3607e-02 -1.4118 0.158343
## logEqWMA(12) 26 0 -6.2733e-02 2.2805e-01 -0.2751 0.783312
## logEqWMA(24) 27 0 6.4927e-02 2.6986e-01 0.2406 0.809922
## logEqWMA(168) 28 0 2.3483e-01 2.2275e-01 1.0542 0.292055
## de_load_fcast 29 0 -2.5706e-05 1.3536e-05 -1.8990 0.057883 .
## de_wind_fcast 30 0 2.3473e-05 1.7445e-05 1.3455 0.178807
## de_solar_fcast 31 0 -2.0942e-04 4.2904e-05 -4.8813 1.248e-06 ***
## de_fr 32 0 -4.6543e-04 1.4818e-04 -3.1410 0.001739 **
## fr_de 33 0 -6.3443e-05 2.5913e-04 -0.2448 0.806645
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Diagnostics:
##
## Chi-sq df p-value
## Ljung-Box AR(1) 233.214 1 0.00000
## Ljung-Box ARCH(25) 14.504 25 0.95221
## 29 path(s) to search
## Searching: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
##
## Path 1: 3 12 24 7 27 26 33 19 18 23 11 5 21 9 16 13 17 28 20 14 6 25 30 29 4 15
## Path 2: 4 24 12 3 33 27 19 7 18 5 26 16 9 21 23 17 13 11 28 20 6 14 30 25 29 15
## Path 3: 5 3 24 12 26 7 19 27 33 18 23 11 21 9 16 13 17 28 20 14 6 25 30 29 4 15
## Path 4: 6 24 7 12 3 33 19 27 18 11 9 23 5 26 13 21 16 17 28 14 20 25 30 29 4 15
## Path 5: 7 12 24 3 27 26 33 19 18 23 11 5 21 9 16 13 17 28 20 14 6 25 30 29 4 15
## Path 6: 9 24 3 12 7 33 19 27 18 26 23 11 16 21 5 13 17 28 20 14 6 25 30 29 4 15
## Path 7: 10 12 19 24 3 33 27 18 7 23 26 21 16 5 14 9 13 6 11 28 20 17 25 30 29 4 22
## Path 8: 11 24 12 3 33 7 27 26 19 18 23 5 21 9 16 13 17 28 20 14 6 25 30 29 4 15
## Path 9: 12 24 3 7 27 26 33 19 18 23 11 5 21 9 16 13 17 28 20 14 6 25 30 29 4 15
## Path 10: 13 3 24 12 26 7 27 19 33 18 23 11 21 5 16 9 17 28 20 14 6 25 30 29 4 15
## Path 11: 14 12 3 24 33 18 26 27 19 7 23 5 11 16 9 17 21 13 6 28 20 25 30 29 4 15
## Path 12: 15 12 3 24 7 19 33 23 11 21 26 27 18 5 9 13 17 16 28 20 30 25 6 14 29 4
## Path 13: 16 12 3 24 7 33 18 26 27 19 21 23 9 5 11 13 17 28 20 14 6 25 30 29 4 15
## Path 14: 17 3 12 27 26 24 33 7 19 18 16 21 23 9 5 11 13 28 20 14 6 25 30 29 4 15
## Path 15: 18 12 24 3 27 26 7 33 19 23 11 5 21 9 16 13 17 28 20 14 6 25 30 29 4 15
## Path 16: 19 24 12 3 27 26 7 33 18 23 11 5 21 9 16 13 17 28 20 14 6 25 30 29 4 15
## Path 17: 20 27 12 24 3 33 26 7 18 21 19 13 16 11 5 9 23 17 28 14 6 25 30 29 4 15
## Path 18: 21 12 3 24 33 7 19 26 27 18 23 11 5 9 16 13 17 28 20 14 6 25 30 29 4 15
## Path 19: 22 12 3 24 33 7 18 26 27 19 11 5 16 13 9 17 23 21 20 14 28 6 25 30 29 4 10
## Path 20: 23 12 24 3 7 33 19 26 27 18 11 5 21 9 16 13 17 28 20 14 6 25 30 29 4 15
## Path 21: 24 12 3 7 27 26 33 19 18 23 11 5 21 9 16 13 17 28 20 14 6 25 30 29 4 15
## Path 22: 25 27 3 12 33 26 7 24 19 18 23 5 21 9 16 13 17 11 28 20 14 6 30 29 4 15
## Path 23: 26 3 24 12 27 7 33 19 18 23 11 5 21 9 16 13 17 28 20 14 6 25 30 29 4 15
## Path 24: 27 12 24 3 26 7 33 19 18 23 11 5 21 9 16 13 17 28 20 14 6 25 30 29 4 15
## Path 25: 28 12 3 24 33 7 26 19 18 27 11 23 9 5 21 16 17 13 20 14 6 25 30 29 4 15
## Path 26: 29 12 3 33 24 7 26 27 18 19 23 16 13 11 9 5 21 17 28 20 14 6 25 30 4 15
## Path 27: 30 24 3 26 12 27 7 18 19 23 33 11 5 21 9 16 13 17 6 14 28 20 25 29 4 15
## Path 28: 32 12 3 24 7 26 19 27 18 28 11 17 23 21 5 9 16 13 20 25 14 6 29 4 30 22 -10
## Path 29: 33 12 24 3 7 26 27 19 18 23 11 5 21 9 16 13 17 28 20 14 6 25 30 29 4 15
##
## Terminal models:
##
## info(sc) logl n k
## spec 1: 7.567160 -3487.247 928 7
## spec 2: 7.628807 -3519.268 928 6
## spec 3: 7.680182 -3539.689 928 7
##
## Retained regressors (final model):
##
## vconst arch1 arch7 arch9 arch21 de_solar_fcast de_fr
daily_de_vmod %>% plot
daily_data_dk1 %>%
ggplot(aes(x = date, y = dk1_price)) +
geom_line() +
labs(main = "DK1: Daily Electricity Prices")
daily_data_dk1 %>% arrange(date) %>% identical(daily_data_dk1)
## [1] TRUE
# Same spec as above with appropriate corrections to the regressors
daily_dk1_mod <- arx(daily_data_dk1$dk1_price,
mc = TRUE,
arch = 1:24,
vxreg = as.matrix(daily_data_dk1[c("dk1_load_fcast", "dk1_wind_fcast", "dk1_no2", "no2_dk1", "dk1_se3", "se3_dk1")]),
log.ewma = c(12, 24, 168))
# Perform gets model selection over the log-variance model above
daily_dk1_vmod <- getsv(daily_dk1_mod, t.pval = 0.001, ar.LjungB = NULL)
## GUM log-variance equation:
##
## reg.no. keep coef std.error t-stat p-value
## vconst 1 1 4.0844e+00 5.5450e-01 54.2564 1.760e-13 ***
## arch1 2 0 2.8248e-01 2.4845e-02 11.3698 < 2.2e-16 ***
## arch2 3 0 7.3071e-02 2.5831e-02 2.8288 0.004730 **
## arch3 4 0 -2.8568e-02 2.5893e-02 -1.1033 0.270059
## arch4 5 0 4.1816e-02 2.5826e-02 1.6191 0.105614
## arch5 6 0 3.0545e-02 2.5843e-02 1.1819 0.237403
## arch6 7 0 4.2625e-02 2.5846e-02 1.6492 0.099305 .
## arch7 8 0 1.0220e-01 2.5860e-02 3.9520 8.081e-05 ***
## arch8 9 0 -3.2478e-03 2.6014e-02 -0.1248 0.900659
## arch9 10 0 2.1980e-02 2.6073e-02 0.8430 0.399339
## arch10 11 0 4.7300e-04 2.6058e-02 0.0182 0.985520
## arch11 12 0 -6.8103e-02 2.6072e-02 -2.6121 0.009082 **
## arch12 13 0 2.3688e-02 2.6069e-02 0.9087 0.363666
## arch13 14 0 2.6743e-02 2.5716e-02 1.0399 0.298529
## arch14 15 0 5.4644e-02 2.5758e-02 2.1215 0.034035 *
## arch15 16 0 6.8946e-03 2.5762e-02 0.2676 0.789025
## arch16 17 0 -1.5133e-02 2.5737e-02 -0.5880 0.556617
## arch17 18 0 -8.5454e-03 2.5749e-02 -0.3319 0.740023
## arch18 19 0 2.0613e-02 2.5579e-02 0.8058 0.420452
## arch19 20 0 -3.0322e-02 2.5508e-02 -1.1888 0.234709
## arch20 21 0 1.2908e-02 2.5542e-02 0.5054 0.613367
## arch21 22 0 6.1679e-02 2.5570e-02 2.4121 0.015969 *
## arch22 23 0 2.6790e-02 2.5618e-02 1.0458 0.295821
## arch23 24 0 -5.7758e-02 2.5894e-02 -2.2306 0.025844 *
## arch24 25 0 -2.1820e-03 2.4836e-02 -0.0879 0.930000
## logEqWMA(12) 26 0 1.0974e-01 1.1262e-01 0.9745 0.329974
## logEqWMA(24) 27 0 -2.8936e-02 1.0601e-01 -0.2729 0.784928
## logEqWMA(168) 28 0 -1.6951e-01 6.9110e-02 -2.4528 0.014281 *
## dk1_load_fcast 29 0 -3.1577e-04 1.5831e-04 -1.9946 0.046250 *
## dk1_wind_fcast 30 0 1.7683e-04 8.0913e-05 2.1854 0.029000 *
## dk1_no2 31 0 1.4864e-04 2.3154e-04 0.6420 0.520991
## no2_dk1 32 0 -5.0654e-04 2.1198e-04 -2.3895 0.016983 *
## dk1_se3 33 0 7.5344e-04 3.0562e-04 2.4652 0.013795 *
## se3_dk1 34 0 -2.4873e-04 2.7180e-04 -0.9151 0.360254
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Diagnostics:
##
## Chi-sq df p-value
## Ljung-Box AR(1) 272.599 1 0
## Ljung-Box ARCH(25) 1.157 25 1
## 31 path(s) to search
## Searching: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
##
## Path 1: 3 25 11 9 16 18 27 4 21 17 19 31 13 20 34 10 6 23 14 29 5 30 7 12 24 22 -26 -28
## Path 2: 4 11 9 25 27 16 18 21 31 19 17 10 13 20 34 23 6 14 26 29 12 5 28 30 22 24 -3 -7
## Path 3: 5 11 25 9 16 18 27 21 17 31 10 4 19 13 20 34 23 14 6 29 30 26 12 28 22 24 -3 -7
## Path 4: 6 11 25 9 16 18 27 21 31 19 17 10 20 13 34 4 23 14 26 29 12 5 28 30 22 24 -3 -7
## Path 5: 7 11 25 9 16 27 18 21 31 17 19 10 13 20 34 23 4 5 14 29 30 6 12 26 28 24 -22 -15 -3
## Path 6: 9 11 25 16 27 18 21 31 17 19 10 13 20 34 4 23 6 14 26 29 12 5 28 30 22 24 -3 -7
## Path 7: 10 9 25 11 16 18 27 21 17 31 19 13 20 34 4 23 6 14 26 29 12 5 28 30 22 24 -3 -7
## Path 8: 11 25 9 16 27 18 21 31 17 19 10 13 20 34 4 23 6 14 26 29 12 5 28 30 22 24 -3 -7
## Path 9: 12 9 27 16 25 13 21 18 19 11 31 17 10 26 4 34 20 14 23 6 29 5 28 30 22 24 -3 -7
## Path 10: 13 11 25 9 16 27 18 21 31 17 19 10 20 34 4 23 6 14 26 29 12 5 28 30 22 24 -3 -7
## Path 11: 14 11 9 25 27 16 18 21 31 17 19 10 20 34 4 13 23 6 26 29 12 5 28 30 22 24 -3 -7
## Path 12: 15 27 9 25 11 18 21 17 31 16 19 10 20 13 34 23 4 6 26 29 28 5 12 14 30 24 -22 -3 -7
## Path 13: 16 11 25 9 27 18 21 31 17 19 10 13 20 34 4 23 6 14 26 29 12 5 28 30 22 24 -3 -7
## Path 14: 17 11 25 9 16 27 21 18 31 19 10 13 20 34 4 23 6 14 26 29 12 5 28 30 22 24 -3 -7
## Path 15: 18 11 25 9 16 27 21 31 17 19 10 13 20 34 4 23 6 14 26 29 12 5 28 30 22 24 -3 -7
## Path 16: 19 11 25 9 18 16 27 21 17 31 10 13 20 34 4 23 6 14 26 29 12 5 28 30 22 24 -3 -7
## Path 17: 20 11 9 25 21 16 27 18 19 31 17 13 10 34 4 23 6 14 26 29 12 5 28 30 22 24 -3 -7
## Path 18: 21 11 25 9 27 16 18 31 17 19 10 13 20 34 4 23 6 14 26 29 12 5 28 30 22 24 -3 -7
## Path 19: 22 27 9 11 25 16 18 19 17 31 10 20 13 21 34 4 6 14 26 29 12 5 23 30 24 28 -3 -7
## Path 20: 23 25 11 9 27 16 18 21 17 31 19 10 13 20 34 4 6 14 26 29 12 5 28 30 22 24 -3 -7
## Path 21: 24 11 9 16 18 27 23 31 21 19 25 10 17 13 20 34 4 6 14 26 29 28 12 5 22 30 -3 -7
## Path 22: 25 11 9 16 27 18 21 31 17 19 10 13 20 34 4 23 6 14 26 29 12 5 28 30 22 24 -3 -7
## Path 23: 26 9 25 11 16 18 21 31 27 17 19 4 34 20 13 10 23 6 14 29 12 5 28 30 22 24 -3 -7
## Path 24: 27 11 9 25 16 18 21 31 17 19 10 13 20 34 4 23 6 14 26 29 12 5 28 30 22 24 -3 -7
## Path 25: 28 25 9 11 16 18 21 17 19 27 26 31 4 34 23 20 13 10 29 6 14 12 5 30 22 24 -3 -7
## Path 26: 29 11 25 9 16 27 18 21 31 19 17 34 10 13 20 23 4 6 14 26 12 5 28 30 22 24 -3 -7
## Path 27: 30 11 9 27 16 25 21 18 19 17 10 13 31 20 23 4 6 34 14 29 5 26 12 28 22 24 -3 -7
## Path 28: 31 11 25 9 27 16 18 21 17 19 10 13 20 34 4 23 6 14 26 29 12 5 28 30 22 24 -3 -7
## Path 29: 32 11 25 9 16 18 27 21 17 19 10 13 20 4 26 23 34 6 14 12 5 29 28 24 22 -33 -30 -3 -7
## Path 30: 33 25 11 16 9 18 27 21 19 17 10 13 31 20 23 6 4 14 5 29 34 28 26 12 24 22 -3 -7
## Path 31: 34 11 25 9 16 27 18 21 17 19 31 10 13 20 4 23 6 14 26 29 12 5 28 30 22 24 -3 -7
##
## Terminal models:
##
## info(sc) logl n k
## spec 1: 8.027536 -6625.174 1658 8
## spec 2: 8.148401 -6725.371 1658 8
## spec 3: 8.158973 -6734.135 1658 8
## spec 4: 8.146595 -6723.874 1658 8
## spec 5: 8.226193 -6786.154 1658 9
## spec 6: 8.188960 -6758.994 1658 8
##
## Retained regressors (final model):
##
## vconst arch1 arch7 arch14 logEqWMA(12) logEqWMA(168) no2_dk1 dk1_se3
daily_dk1_vmod %>% plot
daily_data_dk2 %>%
ggplot(aes(x = date, y = dk2_price)) +
geom_line() +
labs(main = "DK2: Daily Electricity Prices")
data_dk2 %>% arrange(date) %>% identical(data_dk2)
## [1] TRUE
# Same spec as above with appropriate corrections to the regressors
daily_dk2_mod <- arx(daily_data_dk2$dk2_price,
arch = 1:24,
vxreg = as.matrix(daily_data_dk2[c("dk2_load_fcast", "dk2_wind_fcast",
"dk2_se4","dk2_se4_2")]),
log.ewma = c(12, 24, 168))
# Perform gets model selection over the log-variance model above
# Requires turning off both ARCH and AR Ljung-Box test - could play around with lag and pvalues
daily_dk2_vmod <- getsv(daily_dk2_mod, t.pval = 0.001, ar.LjungB = NULL, arch.LjungB = NULL)
## GUM log-variance equation:
##
## reg.no. keep coef std.error t-stat p-value
## vconst 1 1 1.6987e+00 5.0005e-01 11.5401 0.0006811 ***
## arch1 2 0 1.9307e-01 2.5161e-02 7.6735 2.867e-14 ***
## arch2 3 0 3.4324e-02 2.5756e-02 1.3327 0.1828189
## arch3 4 0 -9.3282e-03 2.5644e-02 -0.3638 0.7160855
## arch4 5 0 -8.3994e-03 2.5562e-02 -0.3286 0.7425044
## arch5 6 0 8.2666e-03 2.5446e-02 0.3249 0.7453257
## arch6 7 0 9.3857e-02 2.5371e-02 3.6994 0.0002233 ***
## arch7 8 0 9.8990e-02 2.5505e-02 3.8811 0.0001081 ***
## arch8 9 0 1.7443e-02 2.5574e-02 0.6820 0.4953055
## arch9 10 0 -3.1501e-02 2.5510e-02 -1.2349 0.2170584
## arch10 11 0 5.3092e-03 2.5474e-02 0.2084 0.8349323
## arch11 12 0 -6.9244e-02 2.5519e-02 -2.7134 0.0067304 **
## arch12 13 0 -5.8307e-02 2.5464e-02 -2.2898 0.0221601 *
## arch13 14 0 1.2971e-02 2.5481e-02 0.5090 0.6108063
## arch14 15 0 4.7133e-02 2.5500e-02 1.8483 0.0647332 .
## arch15 16 0 -1.3172e-02 2.5466e-02 -0.5173 0.6050492
## arch16 17 0 -1.3781e-03 2.5347e-02 -0.0544 0.9566490
## arch17 18 0 -7.1532e-03 2.5337e-02 -0.2823 0.7777299
## arch18 19 0 1.4591e-02 2.5113e-02 0.5810 0.5613181
## arch19 20 0 -1.3033e-03 2.4949e-02 -0.0522 0.9583469
## arch20 21 0 3.3739e-02 2.5022e-02 1.3484 0.1777225
## arch21 22 0 4.3136e-02 2.4941e-02 1.7295 0.0839062 .
## arch22 23 0 7.6424e-02 2.4907e-02 3.0683 0.0021880 **
## arch23 24 0 -1.6020e-02 2.5134e-02 -0.6374 0.5239504
## arch24 25 0 -5.8471e-03 2.4441e-02 -0.2392 0.8109592
## logEqWMA(12) 26 0 5.7886e-01 1.5930e-01 3.6337 0.0002880 ***
## logEqWMA(24) 27 0 -1.7785e-01 1.6675e-01 -1.0666 0.2863236
## logEqWMA(168) 28 0 1.0513e-01 6.5938e-02 1.5944 0.1110440
## dk2_load_fcast 29 0 -5.6489e-04 2.4635e-04 -2.2930 0.0219727 *
## dk2_wind_fcast 30 0 1.0969e-03 2.4138e-04 4.5444 5.916e-06 ***
## dk2_se4 31 0 6.4519e-05 2.4905e-04 0.2591 0.7956249
## dk2_se4_2 32 0 -6.6665e-04 1.6007e-04 -4.1646 3.282e-05 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Diagnostics:
##
## Chi-sq df p-value
## Ljung-Box AR(1) 558.86 1 0.0000e+00
## Ljung-Box ARCH(25) 119.48 25 2.7423e-14
## 25 path(s) to search
## Searching: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
##
## Path 1: 3 17 20 25 11 4 6 18 31 5 16 14 19 24 9 10 28 27 21 15 13 22 29 12
## Path 2: 4 20 17 11 31 25 6 18 5 16 19 14 9 24 3 10 28 27 21 15 13 22 29 12
## Path 3: 5 17 20 11 25 31 6 18 4 16 19 14 9 24 3 10 28 27 21 15 13 22 29 12
## Path 4: 6 20 17 11 25 31 5 18 4 16 19 14 9 24 3 10 28 27 21 15 13 22 29 12
## Path 5: 9 17 20 11 25 31 6 18 5 16 4 19 14 24 3 10 28 27 21 15 13 22 29 12
## Path 6: 10 11 20 17 25 31 5 6 18 9 19 4 14 16 24 3 28 27 21 15 13 22 29 12
## Path 7: 11 17 20 25 31 18 6 5 4 16 19 14 9 24 3 10 28 27 21 15 13 22 29 12
## Path 8: 12 17 20 6 11 31 19 25 4 14 16 5 24 9 18 3 10 28 21 27 15 22 13 29
## Path 9: 13 17 14 11 6 25 4 31 20 19 18 5 16 24 9 10 3 21 27 28 15 22 29 12
## Path 10: 14 20 17 11 25 31 18 5 6 4 16 19 9 24 3 10 28 27 21 15 13 22 29 12
## Path 11: 15 17 20 11 25 16 5 6 31 18 19 4 24 14 9 27 3 10 21 28 13 22 29 12
## Path 12: 16 20 17 11 25 31 6 5 18 4 19 14 9 24 3 10 28 27 21 15 13 22 29 12
## Path 13: 17 20 11 25 31 18 6 5 4 16 19 14 9 24 3 10 28 27 21 15 13 22 29 12
## Path 14: 18 20 17 11 31 25 6 5 4 16 19 14 9 24 3 10 28 27 21 15 13 22 29 12
## Path 15: 19 17 20 25 11 18 31 5 6 4 16 14 9 24 3 10 28 27 21 15 13 22 29 12
## Path 16: 20 17 11 25 31 18 6 5 4 16 19 14 9 24 3 10 28 27 21 15 13 22 29 12
## Path 17: 21 17 20 11 25 31 5 6 18 4 16 19 9 14 24 27 3 10 28 15 13 22 29 12
## Path 18: 22 20 17 11 25 31 4 6 5 18 16 19 14 9 24 27 3 10 28 21 13 15 29 12
## Path 19: 23 17 24 20 11 25 16 5 6 31 18 4 19 14 27 9 10 3 21 28 13 15 29
## Path 20: 24 20 17 11 31 6 5 18 25 4 19 16 14 9 3 10 28 27 21 15 13 22 29 12
## Path 21: 25 20 17 11 31 18 6 5 4 16 19 14 9 24 3 10 28 27 21 15 13 22 29 12
## Path 22: 27 20 17 11 5 4 31 14 6 19 25 18 16 9 24 21 3 10 28 15 13 22 29 12
## Path 23: 28 20 17 25 11 18 31 5 6 4 16 14 19 24 9 10 3 27 21 15 13 22 29 12
## Path 24: 29 17 20 31 6 11 25 18 5 4 16 19 14 9 24 3 10 28 21 27 15 13 22 12
## Path 25: 31 20 17 11 25 18 6 5 4 16 19 14 9 24 3 10 28 27 21 15 13 22 29 12
##
## Terminal models:
##
## info(sc) logl n k
## spec 1: 7.840878 -6470.434 1658 8
## spec 2: 7.812686 -6443.357 1658 9
##
## Retained regressors (final model):
##
## vconst arch1 arch6 arch7 arch11 arch21 logEqWMA(12) dk2_wind_fcast dk2_se4_2
daily_dk2_vmod %>% plot
Pulled from replication data available at:https://doi-org.ezproxy-prd.bodleian.ox.ac.uk/10.1016/j.eneco.2016.12.019
# Required including "here("code/rintamaki_replication/data/" to data read commands in the listed files
source(here("code/rintamaki_replication/models/read_intraday_data.R"))
intraday_forms <- list(
list(price_op1_dk1, cbind(wind_op1_dk1, exim_op1_dk1), 2, 1, 1, 1, 7),
list(price_p_dk1, cbind(wind_p_dk1, exim_p_dk1), 2, 1, 1, 1, 7),
list(price_op2_dk1, cbind(wind_op2_dk1, exim_op2_dk1), 2, 1, 1, 1, 7),
list(price_p_dk2, cbind(wind_p_dk2, exim_p_dk2), 2, 1, 1, 1, 7),
list(price_op2_dk2, cbind(wind_op2_dk2, exim_op2_dk2), 2, 1, 1, 1, 7),
list(price_op1_de, cbind(wind_op1_de, exim_op1_de), 2, 1, 1, 1, 7),
list(price_p_de, cbind(wind_p_de, exim_p_de), 2, 1, 1, 1, 7),
list(price_op2_de, cbind(wind_op2_de, exim_op2_de), 2, 1, 1, 1, 7),
list(fwd1(price_p_de), cbind(diff(solar_p_de), fwd1(exim_p_de)), 2, 1, 1, 1, 7),
list(price_p_de, cbind(res_p_de, exim_p_de), 2, 1, 1, 1, 7))
intraday_res <- lapply(intraday_forms, function(x) do.call(fitModel, x))
modelsummary(intraday_res)
| Â (1) | Â Â (2) | Â Â (3) | Â Â (4) | Â Â (5) | Â Â (6) | Â Â (7) | Â Â (8) | Â Â (9) | Â Â (10) | |
|---|---|---|---|---|---|---|---|---|---|---|
| ar1 | 1.151 | 1.173 | 1.062 | 1.243 | 1.071 | −0.556 | 0.973 | 0.591 | 0.955 | 0.882 |
| (0.042) | (0.042) | (0.039) | (0.046) | (0.038) | (0.068) | (0.100) | (0.145) | (0.151) | (0.129) | |
| ar2 | −0.192 | −0.224 | −0.093 | −0.291 | −0.107 | 0.295 | −0.119 | 0.099 | −0.139 | −0.080 |
| (0.034) | (0.034) | (0.035) | (0.038) | (0.034) | (0.043) | (0.054) | (0.065) | (0.077) | (0.055) | |
| ma1 | −0.791 | −0.762 | −0.722 | −0.750 | −0.721 | 0.922 | −0.674 | −0.343 | −0.602 | −0.645 |
| (0.031) | (0.033) | (0.029) | (0.037) | (0.029) | (0.058) | (0.093) | (0.145) | (0.145) | (0.124) | |
| sar1 | 0.948 | 0.954 | 0.970 | 0.961 | 0.963 | 0.917 | 0.934 | 0.961 | 0.928 | 0.932 |
| (0.020) | (0.011) | (0.013) | (0.010) | (0.014) | (0.023) | (0.013) | (0.013) | (0.015) | (0.014) | |
| sma1 | −0.879 | −0.799 | −0.936 | −0.791 | −0.919 | −0.734 | −0.591 | −0.817 | −0.609 | −0.566 |
| (0.031) | (0.024) | (0.019) | (0.023) | (0.021) | (0.041) | (0.033) | (0.027) | (0.036) | (0.036) | |
| intercept | 4.147 | 4.169 | 4.041 | 4.076 | 3.930 | 5.879 | 4.981 | 5.172 | 3.704 | 7.037 |
| (0.096) | (0.084) | (0.077) | (0.112) | (0.075) | (0.138) | (0.113) | (0.081) | (0.080) | (0.161) | |
| wind_op1_dk1 | −0.109 | |||||||||
| (0.009) | ||||||||||
| exim_op1_dk1 | −0.145 | |||||||||
| (0.018) | ||||||||||
| wind_p_dk1 | −0.073 | |||||||||
| (0.005) | ||||||||||
| exim_p_dk1 | −0.107 | |||||||||
| (0.009) | ||||||||||
| wind_op2_dk1 | −0.065 | |||||||||
| (0.005) | ||||||||||
| exim_op2_dk1 | −0.087 | |||||||||
| (0.009) | ||||||||||
| wind_p_dk2 | −0.057 | |||||||||
| (0.004) | ||||||||||
| exim_p_dk2 | −0.066 | |||||||||
| (0.012) | ||||||||||
| wind_op2_dk2 | −0.054 | |||||||||
| (0.005) | ||||||||||
| exim_op2_dk2 | −0.047 | |||||||||
| (0.012) | ||||||||||
| wind_op1_de | −0.307 | |||||||||
| (0.016) | ||||||||||
| exim_op1_de | 0.044 | |||||||||
| (0.011) | ||||||||||
| wind_p_de | −0.153 | |||||||||
| (0.009) | ||||||||||
| exim_p_de | 0.019 | 0.028 | ||||||||
| (0.007) | (0.007) | |||||||||
| wind_op2_de | −0.187 | |||||||||
| (0.008) | ||||||||||
| exim_op2_de | 0.044 | |||||||||
| (0.006) | ||||||||||
| ext1 | −0.053 | |||||||||
| (0.014) | ||||||||||
| ext2 | 0.010 | |||||||||
| (0.008) | ||||||||||
| res_p_de | −0.360 | |||||||||
| (0.016) | ||||||||||
| Num.Obs. | 1813 | 1813 | 1813 | 1816 | 1816 | 1081 | 1081 | 1081 | 1080 | 1081 |
| AIC | 794.5 | −1195.8 | −1329.9 | −1031.8 | −840.6 | 603.6 | −221.5 | −827.0 | −0.6 | −377.6 |
| BIC | 844.0 | −1146.3 | −1280.4 | −982.2 | −791.1 | 648.5 | −176.6 | −782.2 | 44.3 | −332.7 |
| RMSE | 0.30 | 0.17 | 0.17 | 0.18 | 0.19 | 0.32 | 0.22 | 0.16 | 0.24 | 0.20 |
for(cty in c("de","dk1", "dk2")){
temp <- read.table(here(paste0("code/rintamaki_replication/data/", cty, "_intraday.txt")), header=TRUE) %>%
tibble %>%
mutate(date = dmy(date)) %>%
arrange(date)
assign(paste0("intraday_data_", cty), temp)
}
intraday_data_de %>%
select(date, op1_price, op2_price, p_price) %>%
pivot_longer(cols = !date) %>%
ggplot() +
geom_line(aes(x = date, y = value, color = name)) +
labs(main = "DE: Intraday Electricity Prices")
intraday_data_de %>% arrange(date) %>% identical(intraday_data_de)
## [1] TRUE
for(dep in c("op1_", "op2_", "p_")){
temp <- intraday_data_de %>%
select(date, contains(dep))
print(temp)
dep2 <- as.matrix(temp[paste0(dep, "price")])
vxregs <- as.matrix(temp[!(names(temp) %in% c("date", paste0(dep, "price")))])
temp_mod <- arx(dep2,
ar = 1:7,
vxreg = vxregs,
log.ewma = c(12, 24, 168))
assign(paste0("de_", dep, "mod"), temp_mod)
temp_vmod <- getsv(temp_mod, t.pval = 0.001, ar.LjungB = NULL, arch.LjungB = NULL)
assign(paste0("de_", dep, "vmod"), temp_vmod)
plot(temp_vmod)
}
## # A tibble: 1,081 × 8
## date op1_price op1_load op1_wind op1_res op1_wind_pen op1_res_pen
## <date> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 2012-01-01 2.61 10.5 8.74 8.74 -1.71 -1.71
## 2 2012-01-02 2.08 10.5 9.34 9.34 -1.16 -1.16
## 3 2012-01-03 3.34 10.7 9.29 9.29 -1.45 -1.45
## 4 2012-01-04 2.38 10.7 9.95 9.95 -0.779 -0.779
## 5 2012-01-06 2.76 10.7 9.78 9.78 -0.934 -0.934
## 6 2012-01-07 3.14 10.7 9.47 9.47 -1.19 -1.19
## 7 2012-01-08 1.27 10.6 9.55 9.55 -1.01 -1.01
## 8 2012-01-09 3.64 10.8 8.13 8.13 -2.62 -2.62
## 9 2012-01-10 3.53 10.8 9.28 9.28 -1.48 -1.48
## 10 2012-01-11 3.63 10.8 9.03 9.03 -1.80 -1.80
## # ℹ 1,071 more rows
## # ℹ 1 more variable: op1_exp <dbl>
## GUM log-variance equation:
##
## reg.no. keep coef std.error t-stat p-value
## vconst 1 1 44.728126 8.822258 25.7041 3.98e-07 ***
## logEqWMA(12) 2 0 0.375280 0.118561 3.1653 0.001602 **
## logEqWMA(24) 3 0 0.272642 0.145346 1.8758 0.061006 .
## logEqWMA(168) 4 0 -0.260084 0.139584 -1.8633 0.062749 .
## op1_load 5 0 1.834264 5.291641 0.3466 0.728947
## op1_wind 6 0 -32.008578 14.150534 -2.2620 0.023936 *
## op1_res 7 0 25.968216 15.063890 1.7239 0.085076 .
## op1_wind_pen 8 0 36.487859 16.937594 2.1543 0.031486 *
## op1_res_pen 9 0 -29.950706 17.937438 -1.6697 0.095322 .
## op1_exp 10 0 0.210658 0.065245 3.2287 0.001289 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Diagnostics:
##
## Chi-sq df p-value
## Ljung-Box AR(8) 13.207 8 1.0494e-01
## Ljung-Box ARCH(1) 16.937 1 3.8646e-05
## 9 path(s) to search
## Searching: 1 2 3 4 5 6 7 8 9
##
## Path 1: 2 5 9 7 4 -10
## Path 2: 3 5 4 9 7
## Path 3: 4 5 3 9 7
## Path 4: 5 3 4 9 7
## Path 5: 6 5 8 3 4
## Path 6: 7 9 5 3 4
## Path 7: 8 5 6 3 4
## Path 8: 9 7 5 3 4
## Path 9: 10 5 7 9 3 4
##
## Terminal models:
##
## info(sc) logl n k
## spec 1: 0.2711893 -105.82615 906 5
## spec 2: 0.2578840 -99.79886 906 5
## spec 3: 0.2619301 -101.63173 906 5
## spec 4: 0.2691108 -108.28912 906 4
##
## Retained regressors (final model):
##
## vconst logEqWMA(12) op1_wind op1_wind_pen op1_exp
## # A tibble: 1,081 × 8
## date op2_price op2_load op2_wind op2_res op2_wind_pen op2_res_pen
## <date> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 2012-01-01 3.24 10.7 9.35 9.35 -1.31 -1.31
## 2 2012-01-02 3.62 10.9 9.22 9.22 -1.67 -1.67
## 3 2012-01-03 3.30 10.9 10.0 10.0 -0.861 -0.861
## 4 2012-01-04 3.40 10.9 10.0 10.0 -0.906 -0.906
## 5 2012-01-06 3.78 10.9 9.15 9.15 -1.73 -1.73
## 6 2012-01-07 3.43 10.8 9.60 9.60 -1.20 -1.20
## 7 2012-01-08 3.74 10.8 8.50 8.50 -2.32 -2.32
## 8 2012-01-09 3.77 11.0 9.10 9.10 -1.85 -1.85
## 9 2012-01-10 3.77 11.0 8.77 8.77 -2.21 -2.21
## 10 2012-01-11 3.88 11.0 9.01 9.01 -1.96 -1.96
## # ℹ 1,071 more rows
## # ℹ 1 more variable: op2_exp <dbl>
## GUM log-variance equation:
##
## reg.no. keep coef std.error t-stat p-value
## vconst 1 1 -26.710453 9.200046 8.4291 0.0036926 **
## logEqWMA(12) 2 0 0.447505 0.134576 3.3253 0.0009191 ***
## logEqWMA(24) 3 0 -0.089010 0.169826 -0.5241 0.6003224
## logEqWMA(168) 4 0 -0.056773 0.166933 -0.3401 0.7338646
## op2_load 5 0 7.348365 14.049631 0.5230 0.6010833
## op2_wind 6 0 5.878104 84.516825 0.0695 0.9445677
## op2_res 7 0 -10.795241 88.475782 -0.1220 0.9029157
## op2_wind_pen 8 0 -5.145274 92.221806 -0.0558 0.9555196
## op2_res_pen 9 0 10.817351 96.267236 0.1124 0.9105568
## op2_exp 10 0 -0.081546 0.072927 -1.1182 0.2637859
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Diagnostics:
##
## Chi-sq df p-value
## Ljung-Box AR(8) 17.37607 8 0.026423
## Ljung-Box ARCH(1) 0.43192 1 0.511047
## 8 path(s) to search
## Searching: 1 2 3 4 5 6 7 8
##
## Path 1: 3 8 6 7 4 10 5
## Path 2: 4 8 9 7 3 10 5
## Path 3: 5 6 4 8 3 10 9
## Path 4: 6 9 4 7 3 10 5
## Path 5: 7 9 6 4 3 10 5
## Path 6: 8 4 9 7 3 10 5
## Path 7: 9 6 4 7 3 10 5
## Path 8: 10 6 8 4 7 3 5
##
## Terminal models:
##
## info(sc) logl n k
## spec 1: -0.6506371 304.9522 906 3
## spec 2: -0.6521364 305.6314 906 3
## spec 3: -0.6513862 305.2915 906 3
## spec 4: -0.6516526 305.4122 906 3
##
## Retained regressors (final model):
##
## vconst logEqWMA(12) op2_wind
## # A tibble: 1,081 × 10
## date p_price p_load p_wind p_res p_wind_pen p_res_pen p_exp p_solar
## <date> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 2012-01-01 2.93 10.6 9.21 9.25 -1.41 -1.37 -0.716 5.88
## 2 2012-01-02 3.91 11.0 9.07 9.13 -1.96 -1.90 -1.8 6.21
## 3 2012-01-03 3.74 11.0 9.94 10.0 -1.10 -1.04 -1.23 7.23
## 4 2012-01-04 3.85 11.0 9.96 10.0 -1.09 -1.04 0.296 7.05
## 5 2012-01-06 3.86 11.0 9.31 9.41 -1.68 -1.58 0.207 7.06
## 6 2012-01-07 3.68 10.9 9.63 9.65 -1.25 -1.23 0.662 5.59
## 7 2012-01-08 3.62 10.8 9.16 9.22 -1.63 -1.57 0.102 6.25
## 8 2012-01-09 4.03 11.1 8.60 8.68 -2.54 -2.47 -0.999 6.06
## 9 2012-01-10 3.99 11.1 8.70 8.86 -2.41 -2.25 -0.548 6.97
## 10 2012-01-11 3.99 11.1 9.12 9.22 -1.99 -1.90 0.992 6.82
## # ℹ 1,071 more rows
## # ℹ 1 more variable: p_solar_pen <dbl>
## GUM log-variance equation:
##
## reg.no. keep coef std.error t-stat p-value
## vconst 1 1 4.511175 10.345819 0.1901 0.66281
## logEqWMA(12) 2 0 0.085960 0.156028 0.5509 0.58182
## logEqWMA(24) 3 0 0.322139 0.207809 1.5502 0.12146
## logEqWMA(168) 4 0 0.507133 0.272028 1.8643 0.06261 .
## p_load 5 0 15.501740 20.477384 0.7570 0.44924
## p_wind 6 0 20.449252 14.873132 1.3749 0.16950
## p_res 7 0 -33.370067 30.886945 -1.0804 0.28026
## p_wind_pen 8 0 -20.524463 14.942126 -1.3736 0.16991
## p_res_pen 9 0 33.958478 30.994689 1.0956 0.27354
## p_exp 10 0 0.015834 0.065073 0.2433 0.80781
## p_solar 11 0 -3.014614 19.392962 -0.1554 0.87650
## p_solar_pen 12 0 2.665059 19.440005 0.1371 0.89099
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Diagnostics:
##
## Chi-sq df p-value
## Ljung-Box AR(8) 32.2207 8 8.5033e-05
## Ljung-Box ARCH(1) 6.1942 1 1.2817e-02
## 11 path(s) to search
## Searching: 1 2 3 4 5 6 7 8 9 10 11
##
## Path 1: 2 12 10 5 4 11 8 7 9 6
## Path 2: 3 12 10 5 8 6 7 2 9
## Path 3: 4 12 10 2 5 11 8 7 9 6
## Path 4: 5 12 10 2 4 11 8 7 9 6
## Path 5: 6 8 10 7 2 4 5 12 9 11
## Path 6: 7 10 5 2 9 8 4 6 12 11
## Path 7: 8 6 10 7 2 4 5 12 9 11
## Path 8: 9 10 5 2 7 8 4 6 12 11
## Path 9: 10 12 2 5 4 11 8 7 9 6
## Path 10: 11 10 2 5 4 12 8 7 9 6
## Path 11: 12 10 2 5 4 11 8 7 9 6
##
## Terminal models:
##
## info(sc) logl n k
## spec 1: 0.1188387 -47.02487 906 2
## spec 2: 0.1709549 -67.22899 906 3
##
## Retained regressors (final model):
##
## vconst logEqWMA(24)
intraday_data_dk1 %>%
select(date, op1_dk1_price, op2_dk1_price, p_dk1_price) %>%
pivot_longer(cols = !date) %>%
ggplot() +
geom_line(aes(x = date, y = value, color = name)) +
labs(main = "DK1: Intraday Electricity Prices")
intraday_data_dk1 %>% arrange(date) %>% identical(intraday_data_dk1)
## [1] TRUE
for(dep in c("op1_dk1_", "op2_dk1_", "p_dk1_")){
temp <- intraday_data_dk1 %>%
select(date, contains(dep))
print(temp)
dep2 <- as.matrix(temp[paste0(dep, "price")])
vxregs <- as.matrix(temp[!(names(temp) %in% c("date", paste0(dep, "price")))])
temp_mod <- arx(dep2,
arch = 1:24,
vxreg = vxregs,
log.ewma = c(12, 24, 168))
assign(paste0("dk1_", dep, "mod"), temp_mod)
temp_vmod <- getsv(temp_mod, t.pval = 0.001, ar.LjungB = NULL, arch.LjungB = NULL)
assign(paste0("dk1_", dep, "vmod"), temp_vmod)
plot(temp_vmod)
}
## # A tibble: 1,813 × 6
## date op1_dk1_price op1_dk1_load op1_dk1_wind op1_dk1_pen op1_dk1_exp
## <date> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 2010-01-01 3.40 7.51 5.52 -1.98 1.36
## 2 2010-01-02 3.64 7.53 6.13 -1.40 1.32
## 3 2010-01-03 3.63 7.45 5.04 -2.40 1.26
## 4 2010-01-04 3.57 7.70 5.62 -2.06 1.20
## 5 2010-01-05 3.72 7.78 5.05 -2.73 1.22
## 6 2010-01-06 3.59 7.71 6.80 -0.885 1.31
## 7 2010-01-07 3.65 7.71 6.16 -1.52 1.20
## 8 2010-01-08 3.73 7.73 5.69 -2.04 1.07
## 9 2010-01-09 3.27 7.53 6.65 -0.884 1.37
## 10 2010-01-10 2.71 7.59 7.53 -0.0543 1.37
## # ℹ 1,803 more rows
## GUM log-variance equation:
##
## reg.no. keep coef std.error t-stat p-value
## vconst 1 1 2.3793677 3.3482117 0.5050 0.477308
## arch1 2 0 0.2561784 0.0249455 10.2695 < 2.2e-16 ***
## arch2 3 0 0.0702032 0.0257117 2.7304 0.006395 **
## arch3 4 0 0.0326858 0.0257792 1.2679 0.205013
## arch4 5 0 0.0779540 0.0257923 3.0224 0.002548 **
## arch5 6 0 0.0468439 0.0258140 1.8147 0.069761 .
## arch6 7 0 0.0725267 0.0258280 2.8081 0.005044 **
## arch7 8 0 0.1262696 0.0259001 4.8753 1.194e-06 ***
## arch8 9 0 0.0599773 0.0261585 2.2928 0.021985 *
## arch9 10 0 0.0152003 0.0261618 0.5810 0.561313
## arch10 11 0 0.0043686 0.0261433 0.1671 0.867310
## arch11 12 0 0.0109449 0.0261860 0.4180 0.676026
## arch12 13 0 -0.0124875 0.0261513 -0.4775 0.633064
## arch13 14 0 -0.0131047 0.0259864 -0.5043 0.614125
## arch14 15 0 0.0614443 0.0260188 2.3615 0.018318 *
## arch15 16 0 -0.0293628 0.0260536 -1.1270 0.259902
## arch16 17 0 -0.0276526 0.0260928 -1.0598 0.289405
## arch17 18 0 -0.0071264 0.0260666 -0.2734 0.784587
## arch18 19 0 -0.0610663 0.0258240 -2.3647 0.018162 *
## arch19 20 0 0.0453823 0.0257766 1.7606 0.078495 .
## arch20 21 0 0.0458420 0.0259069 1.7695 0.077001 .
## arch21 22 0 -0.0044539 0.0258440 -0.1723 0.863194
## arch22 23 0 0.0153714 0.0258394 0.5949 0.552005
## arch23 24 0 0.0227798 0.0258758 0.8804 0.378800
## arch24 25 0 -0.0145395 0.0252682 -0.5754 0.565096
## logEqWMA(12) 26 0 -0.0482179 0.0984396 -0.4898 0.624326
## logEqWMA(24) 27 0 -0.0467004 0.1076791 -0.4337 0.664564
## logEqWMA(168) 28 0 -0.0206952 0.1328593 -0.1558 0.876236
## op1_dk1_load 29 0 -2.0278378 2.4611786 -0.8239 0.410101
## op1_dk1_wind 30 0 1.8287648 2.5813514 0.7085 0.478767
## op1_dk1_pen 31 0 -1.8139156 2.5755766 -0.7043 0.481363
## op1_dk1_exp 32 0 0.3664050 0.0716448 5.1142 3.527e-07 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Diagnostics:
##
## Chi-sq df p-value
## Ljung-Box AR(1) 199.48723 1 0
## Ljung-Box ARCH(25) 0.64095 25 1
## 28 path(s) to search
## Searching: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
##
## Path 1: 3 22 26 28 11 18 12 14 25 13 31 30 23 29 10 17 24 27 16 21 6 4 20 19 15 9
## Path 2: 4 28 18 11 22 26 12 13 25 14 23 10 31 30 29 24 17 16 27 20 6 21 19 9 15
## Path 3: 5 26 22 28 11 18 23 13 25 14 10 31 30 12 29 24 16 27 17 21 4 20 19 15 9 6
## Path 4: 6 11 28 22 26 18 13 12 14 25 23 10 31 30 29 24 17 16 4 27 21 9 20 19 15
## Path 5: 7 28 26 14 18 11 22 12 13 23 10 31 30 25 29 24 16 27 4 17 20 9 21 19 6 15
## Path 6: 9 28 26 11 18 22 12 13 14 31 30 25 23 29 16 24 10 17 27 4 21 6 20 19 15
## Path 7: 10 28 22 18 11 26 12 14 25 23 13 31 30 29 24 17 16 4 27 20 6 21 19 9 15
## Path 8: 11 28 22 18 12 26 14 10 25 23 13 31 30 29 24 17 16 4 27 20 6 21 19 9 15
## Path 9: 12 28 22 11 18 26 14 10 25 23 13 31 30 29 24 17 16 4 27 20 6 21 19 9 15
## Path 10: 13 28 11 22 18 12 26 25 10 14 23 31 30 29 24 17 16 4 27 20 6 21 19 9 15
## Path 11: 14 28 11 22 18 26 12 10 25 23 13 31 30 29 24 17 16 4 27 20 6 21 19 9 15
## Path 12: 15 22 14 28 27 11 18 13 12 31 30 23 16 10 25 29 24 17 26 4 20 6 19 21 9
## Path 13: 16 28 11 22 18 26 12 23 14 10 25 13 31 30 29 24 17 4 27 20 6 21 19 9 15
## Path 14: 17 11 28 22 26 12 18 10 14 23 25 13 31 30 29 24 16 4 27 20 6 21 19 9 15
## Path 15: 18 11 28 22 12 26 14 10 25 23 13 31 30 29 24 17 16 4 27 20 6 21 19 9 15
## Path 16: 19 11 28 12 22 26 23 10 14 18 31 30 29 13 25 24 16 20 4 17 27 21 6 9 15
## Path 17: 20 22 28 11 18 13 27 12 23 14 25 10 31 30 29 24 16 26 4 17 6 21 19 9 15
## Path 18: 21 28 11 22 27 18 13 12 14 25 23 10 31 30 29 24 17 16 26 4 6 9 20 19 15
## Path 19: 22 28 11 18 12 26 14 10 25 23 13 31 30 29 24 17 16 4 27 20 6 21 19 9 15
## Path 20: 23 22 28 11 18 12 13 27 10 14 25 31 30 24 29 17 26 4 16 20 6 21 19 9 15
## Path 21: 24 11 22 28 18 27 13 12 25 23 14 31 30 10 29 17 26 4 16 20 6 21 19 9 15
## Path 22: 25 11 28 22 18 26 12 14 10 23 13 31 30 29 24 17 16 4 27 20 6 21 19 9 15
## Path 23: 26 11 22 28 18 12 14 10 25 23 13 31 30 29 24 17 16 4 27 20 6 21 19 9 15
## Path 24: 27 11 22 28 18 13 12 23 10 14 25 31 30 24 29 17 26 4 16 20 6 21 19 9 15
## Path 25: 28 11 22 18 12 26 14 10 25 23 13 31 30 29 24 17 16 4 27 20 6 21 19 9 15
## Path 26: 29 28 11 22 18 26 12 14 23 25 10 13 30 31 24 17 16 4 27 20 6 21 19 9 15
## Path 27: 30 28 11 31 22 18 26 12 14 10 23 25 13 29 24 17 16 4 27 20 6 21 19 9 15
## Path 28: 31 28 11 22 30 18 26 12 14 10 23 25 13 29 24 17 16 4 27 20 6 21 19 9 15
##
## Terminal models:
##
## info(sc) logl n k
## spec 1: 1.326841 -1069.110 1645 6
## spec 2: 1.288113 -1033.554 1645 7
## spec 3: 1.285985 -1035.506 1645 6
## spec 4: 1.312750 -1057.520 1645 6
##
## Retained regressors (final model):
##
## vconst arch1 arch2 arch6 arch7 op1_dk1_exp
## # A tibble: 1,813 × 6
## date op2_dk1_price op2_dk1_load op2_dk1_wind op2_dk1_pen op2_dk1_exp
## <date> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 2010-01-01 3.66 7.67 5.91 -1.76 1.37
## 2 2010-01-02 3.75 7.68 6.09 -1.60 -0.28
## 3 2010-01-03 3.70 7.72 5.18 -2.52 0.567
## 4 2010-01-04 3.73 7.91 5.57 -2.32 1.07
## 5 2010-01-05 3.67 7.93 7.05 -0.863 1.15
## 6 2010-01-06 3.85 7.87 6.42 -1.45 -0.393
## 7 2010-01-07 3.85 7.87 5.41 -2.45 0.223
## 8 2010-01-08 3.67 7.89 6.44 -1.44 1.37
## 9 2010-01-09 3.69 7.69 7.39 -0.301 1.37
## 10 2010-01-10 3.78 7.67 7.33 -0.329 1.34
## # ℹ 1,803 more rows
## GUM log-variance equation:
##
## reg.no. keep coef std.error t-stat p-value
## vconst 1 1 11.3715536 3.5303140 10.3756 0.0012769 **
## arch1 2 0 0.2612518 0.0249067 10.4892 < 2.2e-16 ***
## arch2 3 0 0.0589568 0.0257370 2.2907 0.0221070 *
## arch3 4 0 0.0340999 0.0258980 1.3167 0.1881259
## arch4 5 0 0.0912617 0.0258349 3.5325 0.0004232 ***
## arch5 6 0 0.0427851 0.0259183 1.6508 0.0989802 .
## arch6 7 0 0.0792675 0.0260229 3.0461 0.0023561 **
## arch7 8 0 0.1558550 0.0261630 5.9571 3.146e-09 ***
## arch8 9 0 0.0080252 0.0264105 0.3039 0.7612709
## arch9 10 0 0.0098906 0.0263828 0.3749 0.7077916
## arch10 11 0 -0.0065203 0.0263970 -0.2470 0.8049331
## arch11 12 0 -0.0112452 0.0264803 -0.4247 0.6711383
## arch12 13 0 -0.0370595 0.0265144 -1.3977 0.1623915
## arch13 14 0 0.0102275 0.0260190 0.3931 0.6943146
## arch14 15 0 0.0354000 0.0260609 1.3584 0.1745407
## arch15 16 0 0.0278899 0.0261398 1.0670 0.2861539
## arch16 17 0 -0.0340228 0.0261496 -1.3011 0.1934169
## arch17 18 0 -0.0163070 0.0261770 -0.6229 0.5334058
## arch18 19 0 0.0344285 0.0258901 1.3298 0.1837736
## arch19 20 0 0.0110671 0.0258199 0.4286 0.6682522
## arch20 21 0 0.0290615 0.0256445 1.1332 0.2572800
## arch21 22 0 0.0091425 0.0255453 0.3579 0.7204682
## arch22 23 0 0.0468511 0.0254935 1.8378 0.0662811 .
## arch23 24 0 0.0144852 0.0254993 0.5681 0.5700731
## arch24 25 0 -0.0398882 0.0246529 -1.6180 0.1058601
## logEqWMA(12) 26 0 0.1645591 0.1084633 1.5172 0.1294155
## logEqWMA(24) 27 0 -0.2926494 0.1136420 -2.5752 0.0101070 *
## logEqWMA(168) 28 0 0.2223230 0.0836550 2.6576 0.0079472 **
## op2_dk1_load 29 0 1.8461104 4.9186617 0.3753 0.7074661
## op2_dk1_wind 30 0 -3.1954627 4.9991348 -0.6392 0.5227815
## op2_dk1_pen 31 0 3.1621801 4.9971596 0.6328 0.5269569
## op2_dk1_exp 32 0 0.4463530 0.0611518 7.2991 4.528e-13 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Diagnostics:
##
## Chi-sq df p-value
## Ljung-Box AR(1) 267.3491 1 0
## Ljung-Box ARCH(25) 1.2304 25 1
## 27 path(s) to search
## Searching: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
##
## Path 1: 3 11 9 29 20 22 14 18 12 24 10 16 17 19 25 21 13 6 4 15 23 27 26 28 -31 -30
## Path 2: 4 11 9 14 29 20 10 22 12 18 24 16 17 19 13 21 26 25 15 6 27 23 28 31 30 -3
## Path 3: 6 9 11 22 29 10 14 12 20 24 18 16 17 19 13 4 21 25 15 26 27 23 28 31 30 -3
## Path 4: 7 11 10 9 29 20 22 12 24 18 14 16 4 17 19 13 25 21 15 26 27 23 6 -28
## Path 5: 9 11 22 29 10 14 20 12 24 18 16 17 19 4 13 21 26 25 15 6 27 23 28 31 30 -3
## Path 6: 10 11 22 9 29 14 20 12 24 18 16 17 19 4 13 21 26 25 15 6 27 23 28 31 30 -3
## Path 7: 11 9 22 29 10 14 20 12 24 18 16 17 19 4 13 21 26 25 15 6 27 23 28 31 30 -3
## Path 8: 12 11 9 22 29 10 14 20 24 18 16 17 19 4 13 21 26 25 15 6 27 23 28 31 30 -3
## Path 9: 13 14 20 11 9 22 29 10 24 18 12 19 16 26 21 17 4 25 15 6 27 23 28 31 30 -3
## Path 10: 14 11 9 22 29 10 20 12 24 18 16 17 19 4 13 21 26 25 15 6 27 23 28 31 30 -3
## Path 11: 15 11 9 29 20 10 12 22 24 18 14 4 17 16 19 13 26 21 27 6 23 25 28 31 30 -3
## Path 12: 16 11 22 10 12 29 14 20 9 18 24 17 19 4 13 21 26 25 15 6 27 23 28 31 30 -3
## Path 13: 17 10 11 9 22 29 14 24 20 12 18 16 19 4 13 21 26 25 15 6 27 23 28 31 30 -3
## Path 14: 18 9 22 11 10 29 14 20 12 24 16 17 19 4 13 21 26 25 15 6 27 23 28 31 30 -3
## Path 15: 19 12 11 9 22 29 14 18 10 24 20 16 17 4 13 21 26 25 15 6 27 23 28 31 30 -3
## Path 16: 20 11 9 22 29 10 14 12 24 18 16 17 19 4 13 21 26 25 15 6 27 23 28 31 30 -3
## Path 17: 21 11 9 29 10 12 14 24 22 18 20 16 17 4 19 13 26 25 15 6 27 23 28 31 30 -3
## Path 18: 22 11 9 29 10 14 20 12 24 18 16 17 19 4 13 21 26 25 15 6 27 23 28 31 30 -3
## Path 19: 23 11 29 10 20 14 12 9 18 22 24 26 13 19 17 16 21 25 4 6 27 15 28 31 30 -3
## Path 20: 24 11 9 29 22 14 10 20 12 18 16 17 19 4 13 21 26 25 15 6 27 23 28 31 30 -3
## Path 21: 25 24 11 10 22 29 20 9 14 12 18 19 16 17 4 21 13 6 15 26 27 23 28 31 30 -3
## Path 22: 26 11 12 22 20 14 29 24 9 18 10 16 13 19 21 17 4 25 15 6 27 23 28 31 30 -3
## Path 23: 27 22 20 11 14 24 12 29 26 9 10 16 21 18 19 13 4 15 17 6 23 25 28 31 30 -3
## Path 24: 28 11 10 9 22 14 12 29 20 18 24 16 17 4 19 25 13 21 26 15 27 6 23 31 30 -3
## Path 25: 29 11 9 22 10 14 20 12 24 18 16 17 19 4 13 21 26 25 15 6 27 23 28 31 30 -3
## Path 26: 30 11 9 22 10 14 20 12 24 18 31 16 17 19 4 13 21 26 25 15 6 27 23 28 29 -3
## Path 27: 31 11 9 22 10 14 20 12 24 18 30 16 17 19 4 13 21 26 25 15 6 27 23 28 29 -3
##
## Terminal models:
##
## info(sc) logl n k
## spec 1: 0.3288111 -240.8251 1645 8
## spec 2: 0.2738499 -199.3223 1645 7
## spec 3: 0.3020284 -215.0936 1645 9
##
## Retained regressors (final model):
##
## vconst arch1 arch2 arch4 arch6 arch7 op2_dk1_exp
## # A tibble: 1,813 × 6
## date p_dk1_price p_dk1_load p_dk1_wind p_dk1_pen p_dk1_exp
## <date> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 2010-01-01 3.62 7.70 6.07 -1.62 1.36
## 2 2010-01-02 3.79 7.82 6.59 -1.23 0.0989
## 3 2010-01-03 3.77 7.78 4.75 -3.05 0.431
## 4 2010-01-04 3.83 8.11 5.46 -2.65 0.351
## 5 2010-01-05 3.93 8.16 6.57 -1.58 0.186
## 6 2010-01-06 3.90 8.09 6.66 -1.43 0.375
## 7 2010-01-07 4.10 8.09 5.77 -2.31 0.407
## 8 2010-01-08 3.96 8.11 6.30 -1.80 0.689
## 9 2010-01-09 3.74 7.85 7.19 -0.661 1.16
## 10 2010-01-10 3.61 7.83 7.51 -0.325 1.26
## # ℹ 1,803 more rows
## GUM log-variance equation:
##
## reg.no. keep coef std.error t-stat p-value
## vconst 1 1 2.1032495 2.3228813 0.8198 0.36523
## arch1 2 0 0.2458311 0.0252107 9.7511 < 2.2e-16 ***
## arch2 3 0 0.0308680 0.0261088 1.1823 0.23727
## arch3 4 0 -0.0408429 0.0260847 -1.5658 0.11760
## arch4 5 0 0.0236593 0.0260854 0.9070 0.36455
## arch5 6 0 0.0018745 0.0259277 0.0723 0.94237
## arch6 7 0 0.0636568 0.0259222 2.4557 0.01417 *
## arch7 8 0 0.1312654 0.0259416 5.0600 4.671e-07 ***
## arch8 9 0 0.0371864 0.0261736 1.4208 0.15558
## arch9 10 0 -0.0492745 0.0261074 -1.8874 0.05929 .
## arch10 11 0 0.0017575 0.0261872 0.0671 0.94650
## arch11 12 0 -0.0014691 0.0262150 -0.0560 0.95532
## arch12 13 0 -0.0247535 0.0262293 -0.9437 0.34545
## arch13 14 0 0.0159174 0.0258368 0.6161 0.53793
## arch14 15 0 0.0465100 0.0259622 1.7915 0.07341 .
## arch15 16 0 0.0214711 0.0259550 0.8272 0.40822
## arch16 17 0 -0.0177906 0.0259543 -0.6855 0.49315
## arch17 18 0 0.0194748 0.0259701 0.7499 0.45343
## arch18 19 0 0.0362382 0.0257522 1.4072 0.15957
## arch19 20 0 -0.0144542 0.0256796 -0.5629 0.57361
## arch20 21 0 0.0320960 0.0256915 1.2493 0.21174
## arch21 22 0 0.0585353 0.0256475 2.2823 0.02260 *
## arch22 23 0 -0.0136065 0.0257055 -0.5293 0.59665
## arch23 24 0 -0.0108295 0.0256315 -0.4225 0.67271
## arch24 25 0 -0.0032828 0.0248567 -0.1321 0.89495
## logEqWMA(12) 26 0 0.2696182 0.1403244 1.9214 0.05486 .
## logEqWMA(24) 27 0 -0.2107270 0.1477210 -1.4265 0.15391
## logEqWMA(168) 28 0 0.0411078 0.1304753 0.3151 0.75276
## p_dk1_load 29 0 -6.9813485 4.5056725 -1.5495 0.12147
## p_dk1_wind 30 0 6.7200791 4.4792253 1.5003 0.13374
## p_dk1_pen 31 0 -6.7442198 4.4821573 -1.5047 0.13260
## p_dk1_exp 32 0 0.3638595 0.0618754 5.8805 4.961e-09 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Diagnostics:
##
## Chi-sq df p-value
## Ljung-Box AR(1) 408.29 1 0.0000e+00
## Ljung-Box ARCH(25) 102.21 25 2.6581e-11
## 28 path(s) to search
## Searching: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
##
## Path 1: 3 6 11 25 12 28 24 20 23 14 17 18 16 5 13 4 21 19 27 9 30 31 29 10 26 15 22
## Path 2: 4 11 12 6 25 28 24 20 14 5 23 18 17 16 13 3 21 19 27 9 30 31 29 10 26 15 22
## Path 3: 5 12 11 25 6 28 24 20 23 14 17 18 16 13 21 3 4 19 27 9 30 31 29 10 26 15 22
## Path 4: 6 12 11 25 28 24 20 23 14 18 17 16 5 13 21 3 4 19 27 9 30 31 29 10 26 15 22
## Path 5: 7 25 11 12 28 24 20 6 23 17 16 18 5 13 14 3 4 19 9 21 27 30 31 29 10 15 26 22
## Path 6: 9 6 11 12 25 28 24 20 23 14 17 18 5 16 13 21 3 4 19 27 30 31 29 10 26 15 22
## Path 7: 10 12 6 25 11 28 23 20 14 18 24 16 17 13 5 3 9 21 4 19 27 30 31 29 26 15 22
## Path 8: 11 12 6 25 28 24 20 23 14 18 17 16 5 13 21 3 4 19 27 9 30 31 29 10 26 15 22
## Path 9: 12 11 6 25 28 24 20 23 14 18 17 16 5 13 21 3 4 19 27 9 30 31 29 10 26 15 22
## Path 10: 13 6 11 25 12 28 14 24 23 20 18 17 16 5 21 3 4 19 27 9 30 31 29 10 26 15 22
## Path 11: 14 12 11 6 25 28 24 20 23 18 17 16 5 13 21 3 4 19 27 9 30 31 29 10 26 15 22
## Path 12: 15 6 12 11 25 28 23 20 17 18 24 5 13 14 16 3 4 21 27 19 30 31 29 9 10 26 22
## Path 13: 16 12 11 6 25 28 24 23 20 17 18 14 5 13 21 3 4 19 27 9 30 31 29 10 26 15 22
## Path 14: 17 11 12 6 25 28 20 23 18 24 16 14 5 13 21 3 4 19 27 9 30 31 29 10 26 15 22
## Path 15: 18 12 25 6 11 28 24 20 17 23 16 14 5 13 21 3 4 19 27 9 30 31 29 10 26 15 22
## Path 16: 19 25 6 11 12 20 28 24 14 23 16 17 13 18 5 3 4 21 27 9 30 31 29 10 26 15 22
## Path 17: 20 6 11 12 25 28 24 23 14 18 17 16 5 13 21 3 4 19 27 9 30 31 29 10 26 15 22
## Path 18: 21 12 11 6 25 20 28 23 24 18 17 16 14 13 5 3 4 19 27 9 30 31 29 10 26 15 22
## Path 19: 22 12 6 23 11 25 28 24 20 14 18 17 16 5 13 3 4 19 27 30 31 29 21 9 10 26 15
## Path 20: 23 6 11 12 25 28 20 24 14 18 17 16 5 13 21 3 4 19 27 9 30 31 29 10 26 15 22
## Path 21: 24 12 6 11 25 28 20 23 14 18 17 16 5 13 21 3 4 19 27 9 30 31 29 10 26 15 22
## Path 22: 25 12 11 6 28 24 20 23 14 18 17 16 5 13 21 3 4 19 27 9 30 31 29 10 26 15 22
## Path 23: 26 27 12 25 11 6 13 14 28 18 24 16 17 20 21 23 4 19 3 10 9 5 30 31 29 15 22
## Path 24: 27 12 28 11 6 25 14 18 24 16 13 17 20 21 23 5 4 3 19 9 30 31 29 10 26 15 22
## Path 25: 28 12 11 6 25 24 20 23 14 18 17 16 5 13 21 3 4 19 27 9 30 31 29 10 26 15 22
## Path 26: 29 12 11 6 25 28 24 20 23 14 17 18 16 31 30 5 13 21 3 4 19 27 9 10 26 15 22
## Path 27: 30 12 11 6 25 28 31 24 20 23 14 17 18 16 5 29 13 21 3 4 19 27 9 10 26 15 22
## Path 28: 31 12 11 6 25 28 30 24 20 23 14 17 18 16 5 29 13 21 3 4 19 27 9 10 26 15 22
##
## Terminal models:
##
## info(sc) logl n k
## spec 1 (1-cut): 0.4783919 -378.6664 1645 4
## spec 2: 0.4635755 -362.7771 1645 5
##
## Retained regressors (final model):
##
## vconst arch1 arch6 arch7 p_dk1_exp
intraday_data_dk2 %>%
select(date, op1_dk2_price, op2_dk2_price, p_dk2_price) %>%
pivot_longer(cols = !date) %>%
ggplot() +
geom_line(aes(x = date, y = value, color = name)) +
labs(main = "dk2: Intraday Electricity Prices")
intraday_data_dk2 %>% arrange(date) %>% identical(intraday_data_dk2)
## [1] TRUE
for(dep in c("op1_dk2_", "op2_dk2_", "p_dk2_")){
temp <- intraday_data_dk2 %>%
select(date, contains(dep))
print(temp)
dep2 <- as.matrix(temp[paste0(dep, "price")])
vxregs <- as.matrix(temp[!(names(temp) %in% c("date", paste0(dep, "price")))])
temp_mod <- arx(dep2,
arch = 1:24,
vxreg = vxregs,
log.ewma = c(12, 24, 168))
assign(paste0("dk2_", dep, "mod"), temp_mod)
temp_vmod <- getsv(temp_mod, t.pval = 0.001, ar.LjungB = NULL, arch.LjungB = NULL)
assign(paste0("dk2_", dep, "vmod"), temp_vmod)
printtex(temp_vmod)
plot(temp_vmod)
}
## # A tibble: 1,816 × 6
## date op1_dk2_price op1_dk2_load op1_dk2_wind op1_dk2_pen op1_dk2_exp
## <date> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 2010-01-01 3.67 7.28 4.82 -2.45 0.497
## 2 2010-01-02 3.68 7.29 4.90 -2.40 0.481
## 3 2010-01-03 3.70 7.25 4.17 -3.07 0.687
## 4 2010-01-04 3.75 7.41 5.30 -2.10 0.884
## 5 2010-01-05 3.76 7.45 4.80 -2.62 0.681
## 6 2010-01-06 3.78 7.42 4.91 -2.48 0.910
## 7 2010-01-07 4.07 7.42 4.64 -2.77 0.813
## 8 2010-01-08 5.15 7.47 4.51 -2.96 1.05
## 9 2010-01-09 3.83 7.29 6.05 -1.25 1.35
## 10 2010-01-10 3.81 7.36 6.43 -0.936 1.22
## # ℹ 1,806 more rows
## GUM log-variance equation:
##
## reg.no. keep coef std.error t-stat p-value
## vconst 1 1 1.3775e+00 3.2047e+00 0.1848 0.6673201
## arch1 2 0 2.7540e-01 2.5076e-02 10.9827 < 2.2e-16 ***
## arch2 3 0 6.8394e-02 2.6055e-02 2.6250 0.0087469 **
## arch3 4 0 4.7213e-02 2.6052e-02 1.8123 0.0701262 .
## arch4 5 0 8.1431e-02 2.6054e-02 3.1255 0.0018068 **
## arch5 6 0 2.9337e-02 2.6135e-02 1.1225 0.2618147
## arch6 7 0 5.9756e-02 2.6075e-02 2.2917 0.0220516 *
## arch7 8 0 1.1797e-01 2.6233e-02 4.4969 7.386e-06 ***
## arch8 9 0 8.3561e-02 2.6439e-02 3.1606 0.0016039 **
## arch9 10 0 9.0971e-05 2.6472e-02 0.0034 0.9972585
## arch10 11 0 7.1374e-03 2.6445e-02 0.2699 0.7872730
## arch11 12 0 -2.9062e-02 2.6341e-02 -1.1033 0.2700461
## arch12 13 0 -7.7851e-04 2.6467e-02 -0.0294 0.9765381
## arch13 14 0 -1.0896e-02 2.6129e-02 -0.4170 0.6767088
## arch14 15 0 7.1120e-02 2.6117e-02 2.7232 0.0065353 **
## arch15 16 0 -7.7954e-03 2.6095e-02 -0.2987 0.7651820
## arch16 17 0 -3.7408e-02 2.6076e-02 -1.4346 0.1516022
## arch17 18 0 4.9833e-03 2.5943e-02 0.1921 0.8476969
## arch18 19 0 -2.0754e-02 2.5696e-02 -0.8077 0.4193877
## arch19 20 0 -8.3757e-03 2.5669e-02 -0.3263 0.7442464
## arch20 21 0 5.2119e-02 2.5784e-02 2.0213 0.0434089 *
## arch21 22 0 2.4022e-02 2.5755e-02 0.9327 0.3511063
## arch22 23 0 1.9484e-02 2.5733e-02 0.7571 0.4490754
## arch23 24 0 3.3204e-02 2.5659e-02 1.2941 0.1958319
## arch24 25 0 -5.7696e-02 2.4732e-02 -2.3328 0.0197790 *
## logEqWMA(12) 26 0 1.2469e-01 1.0170e-01 1.2260 0.2203690
## logEqWMA(24) 27 0 -1.6695e-01 1.0752e-01 -1.5528 0.1206776
## logEqWMA(168) 28 0 1.3413e-01 1.1457e-01 1.1708 0.2418504
## op1_dk2_load 29 0 -6.5340e-01 2.4374e+00 -0.2681 0.7886813
## op1_dk2_wind 30 0 6.2635e-01 2.4637e+00 0.2542 0.7993509
## op1_dk2_pen 31 0 -5.3993e-01 2.4566e+00 -0.2198 0.8260633
## op1_dk2_exp 32 0 2.8607e-01 8.5856e-02 3.3320 0.0008818 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Diagnostics:
##
## Chi-sq df p-value
## Ljung-Box AR(1) 331.476 1 0.000000
## Ljung-Box ARCH(25) 41.935 25 0.018266
## 28 path(s) to search
## Searching: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
##
## Path 1: 3 13 10 18 31 29 20 16 11 14 23 19 22 6 28 12 17 24 26 27 30 21 25 15 4
## Path 2: 4 10 13 31 29 16 18 20 11 14 23 19 22 6 12 28 26 27 24 30 17 21 25 15 3
## Path 3: 5 10 13 18 31 29 11 20 14 16 19 23 22 12 28 26 27 24 17 30 21 6 25 15 -3 -4
## Path 4: 6 10 13 18 20 31 11 29 16 14 23 19 22 28 12 26 27 24 30 17 4 21 25 15 3
## Path 5: 7 13 10 18 14 31 16 11 29 20 23 19 22 28 12 26 27 24 6 30 17 4 21 25 15
## Path 6: 9 13 16 11 31 18 29 20 14 10 19 22 6 23 17 28 12 24 27 26 30 4 21 25 15
## Path 7: 10 13 18 31 29 11 16 20 14 23 19 22 6 28 12 26 27 24 30 17 4 21 25 15 3
## Path 8: 11 13 10 18 31 29 16 20 14 23 19 22 6 28 12 26 27 24 30 17 4 21 25 15 3
## Path 9: 12 10 11 18 13 31 29 16 20 14 23 6 22 19 26 28 27 24 30 17 4 21 25 15 3
## Path 10: 13 10 18 31 29 11 16 20 14 23 19 22 6 28 12 26 27 24 30 17 4 21 25 15 3
## Path 11: 14 10 13 18 31 29 11 16 20 23 19 22 6 28 12 26 27 24 30 17 4 21 25 15 3
## Path 12: 15 10 13 14 18 16 31 20 29 11 19 23 26 27 28 12 6 22 24 17 30 4 21 25 3
## Path 13: 16 10 13 18 31 29 11 20 14 23 19 22 6 28 12 26 27 24 30 17 4 21 25 15 3
## Path 14: 17 18 13 10 11 31 29 20 14 16 23 19 22 6 28 12 26 24 27 30 4 21 25 15 3
## Path 15: 18 10 13 31 29 11 16 20 14 23 19 22 6 28 12 26 27 24 30 17 4 21 25 15 3
## Path 16: 19 10 18 13 31 11 29 16 14 20 23 22 6 28 12 26 27 24 30 17 4 21 25 15 3
## Path 17: 20 10 13 18 31 29 11 16 14 23 19 22 6 28 12 26 27 24 30 17 4 21 25 15 3
## Path 18: 21 10 20 13 18 14 11 16 31 29 19 23 26 27 28 12 6 24 22 17 30 4 25 15 3
## Path 19: 22 10 13 31 18 11 20 16 29 14 19 23 6 28 12 26 27 24 30 17 4 21 25 15 3
## Path 20: 23 10 13 18 31 16 29 11 20 14 19 22 6 28 12 26 27 24 30 17 4 21 25 15 3
## Path 21: 24 13 10 31 18 16 20 29 11 14 19 22 6 23 26 27 28 12 30 17 4 21 25 15 3
## Path 22: 25 10 18 13 11 31 16 14 29 20 23 24 19 22 6 28 12 26 27 21 4 30 17 15 3
## Path 23: 26 18 13 31 10 29 20 16 14 11 23 22 19 27 28 6 12 24 30 17 4 21 25 15 3
## Path 24: 27 18 10 13 31 26 11 16 20 23 29 14 22 19 28 6 12 24 30 17 4 21 25 15 3
## Path 25: 28 13 10 18 31 29 20 16 11 14 23 19 6 22 12 26 27 24 30 17 4 21 25 15 3
## Path 26: 29 10 13 30 18 11 16 20 14 23 19 22 6 28 12 26 27 24 17 31 4 21 25 15 3
## Path 27: 30 10 13 29 18 11 16 20 14 23 19 22 6 28 12 26 27 24 17 31 4 21 25 15 3
## Path 28: 31 10 13 18 29 11 16 20 14 23 19 22 6 28 12 26 27 24 30 17 4 21 25 15 3
##
## Terminal models:
##
## info(sc) logl n k
## spec 1: 0.8542536 -677.9794 1648 7
## spec 2: 0.8530321 -673.2692 1648 8
## spec 3: 0.8526186 -676.6321 1648 7
## spec 4: 0.8551795 -678.7423 1648 7
##
## Retained regressors (final model):
##
## vconst arch1 arch2 arch4 arch7 arch8 op1_dk2_exp
## % Date: Fri Sep 13 18:52:24 2024
## % LaTeX code generated in R 4.3.1 by the gets package
## % Note: The {eqnarray} environment requires the {amsmath} package
## \begin{eqnarray}
## \widehat{e} &=& \underset{(0.0244)}{0.6929} + \underset{(0.0242)}{0.2919}arch1 + \underset{(0.0229)}{0.0881}arch2 + \underset{(0.0240)}{0.1089}arch4 + \underset{(0.0244)}{0.1600}arch7 + \underset{(0.0725)}{0.0981}arch8 + \underset{(NA)}{0.3284}op1_dk2_exp - \underset{(NA)}{1.6291}Elnz2 \\[2mm]
## && R^2=NA \qquad \widehat{\sigma}=0.4253 \qquad LogL=-676.6321 \qquad T = 1648 \nonumber \\
## \end{eqnarray}
## # A tibble: 1,816 × 6
## date op2_dk2_price op2_dk2_load op2_dk2_wind op2_dk2_pen op2_dk2_exp
## <date> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 2010-01-01 3.70 7.45 4.69 -2.76 0.271
## 2 2010-01-02 3.79 7.48 5.06 -2.43 0.0560
## 3 2010-01-03 3.76 7.52 4.15 -3.34 0.524
## 4 2010-01-04 3.87 7.60 4.52 -3.09 0.679
## 5 2010-01-05 3.86 7.61 4.37 -3.25 0.606
## 6 2010-01-06 3.85 7.67 4.32 -3.34 0.441
## 7 2010-01-07 4.19 7.67 3.98 -3.69 0.461
## 8 2010-01-08 4.16 7.63 5.79 -1.83 0.964
## 9 2010-01-09 3.82 7.52 6.37 -1.14 0.895
## 10 2010-01-10 3.83 7.55 6.28 -1.27 0.961
## # ℹ 1,806 more rows
## GUM log-variance equation:
##
## reg.no. keep coef std.error t-stat p-value
## vconst 1 1 6.8839994 3.0074516 5.2394 0.0220805 *
## arch1 2 0 0.3019695 0.0250214 12.0684 < 2.2e-16 ***
## arch2 3 0 0.0943811 0.0261028 3.6157 0.0003087 ***
## arch3 4 0 0.0373940 0.0262194 1.4262 0.1540045
## arch4 5 0 0.0870589 0.0262080 3.3218 0.0009142 ***
## arch5 6 0 0.0227230 0.0263097 0.8637 0.3878954
## arch6 7 0 0.1007213 0.0263248 3.8261 0.0001351 ***
## arch7 8 0 0.0824414 0.0264500 3.1169 0.0018600 **
## arch8 9 0 -0.0050700 0.0265247 -0.1911 0.8484376
## arch9 10 0 -0.0592506 0.0264328 -2.2416 0.0251257 *
## arch10 11 0 0.0147485 0.0264664 0.5573 0.5774308
## arch11 12 0 0.0058355 0.0264855 0.2203 0.8256421
## arch12 13 0 -0.0448749 0.0264398 -1.6972 0.0898422 .
## arch13 14 0 0.0554363 0.0260917 2.1247 0.0337650 *
## arch14 15 0 0.0465621 0.0262021 1.7770 0.0757498 .
## arch15 16 0 0.0248170 0.0261698 0.9483 0.3431156
## arch16 17 0 -0.0611241 0.0261025 -2.3417 0.0193173 *
## arch17 18 0 -0.0231541 0.0261823 -0.8843 0.3766433
## arch18 19 0 -0.0039303 0.0261349 -0.1504 0.8804792
## arch19 20 0 0.0296156 0.0259830 1.1398 0.2545353
## arch20 21 0 -0.0176655 0.0259293 -0.6813 0.4957838
## arch21 22 0 0.0388086 0.0258469 1.5015 0.1334263
## arch22 23 0 0.0457209 0.0258532 1.7685 0.0771688 .
## arch23 24 0 -0.0071083 0.0257764 -0.2758 0.7827617
## arch24 25 0 0.0369623 0.0246343 1.5004 0.1336958
## logEqWMA(12) 26 0 0.1958940 0.0969820 2.0199 0.0435585 *
## logEqWMA(24) 27 0 -0.2242694 0.0943199 -2.3778 0.0175343 *
## logEqWMA(168) 28 0 0.1256501 0.0688076 1.8261 0.0680185 .
## op2_dk2_load 29 0 -1.4793886 3.5493876 -0.4168 0.6768793
## op2_dk2_wind 30 0 0.6688355 3.5396322 0.1890 0.8501509
## op2_dk2_pen 31 0 -0.6140553 3.5410316 -0.1734 0.8623498
## op2_dk2_exp 32 0 0.4197623 0.0732259 5.7324 1.179e-08 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Diagnostics:
##
## Chi-sq df p-value
## Ljung-Box AR(1) 382.7392 1 0
## Ljung-Box ARCH(25) 1.8303 25 1
## 26 path(s) to search
## Searching: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
##
## Path 1: 4 19 12 31 9 24 11 21 18 20 16 6 22 30 25 13 14 27 26 10 23 29 28 17 -15
## Path 2: 6 19 31 9 12 24 11 21 18 16 20 4 22 30 25 13 14 27 26 10 23 29 28 17 -15
## Path 3: 8 19 31 12 9 24 11 21 18 20 6 16 25 30 4 13 22 10 14 27 26 29 28 -23 -17
## Path 4: 9 19 31 12 24 11 21 6 18 16 20 4 22 30 25 13 14 27 26 10 23 29 28 17 -15
## Path 5: 10 19 31 11 12 24 9 21 16 6 18 20 4 25 30 13 22 26 27 14 23 29 28 17 -15
## Path 6: 11 19 31 9 24 12 21 6 18 16 20 4 22 30 25 13 14 27 26 10 23 29 28 17 -15
## Path 7: 12 19 31 9 24 11 21 6 18 16 20 4 22 30 25 13 14 27 26 10 23 29 28 17 -15
## Path 8: 13 12 31 9 19 24 11 21 6 20 18 16 25 30 4 22 14 27 26 10 23 29 28 17 -15
## Path 9: 14 31 19 9 24 12 21 11 18 6 16 13 20 4 30 25 22 27 26 10 23 29 28 17 -15
## Path 10: 15 19 9 31 12 24 21 11 6 18 20 16 13 25 30 4 22 27 26 10 28 29 14 17 -23
## Path 11: 16 9 19 31 24 12 11 21 18 6 20 4 22 30 25 13 14 27 26 10 23 29 28 17 -15
## Path 12: 17 31 9 12 19 11 24 16 21 6 20 4 18 22 25 30 15 13 26 27 23 10 14 29 -28
## Path 13: 18 9 12 31 19 24 11 21 6 16 20 4 22 30 25 13 14 27 26 10 23 29 28 17 -15
## Path 14: 19 31 9 12 24 11 21 6 18 16 20 4 22 30 25 13 14 27 26 10 23 29 28 17 -15
## Path 15: 20 19 9 31 24 12 21 11 18 6 16 4 22 30 25 13 14 27 26 10 23 29 28 17 -15
## Path 16: 21 31 9 19 12 24 11 6 18 16 20 4 22 30 25 13 14 27 26 10 23 29 28 17 -15
## Path 17: 22 9 19 24 31 12 21 11 6 18 16 20 4 30 25 13 14 27 26 10 23 29 28 17 -15
## Path 18: 23 19 31 9 24 12 11 21 6 18 20 16 4 13 30 25 14 27 26 10 22 29 28 17 -15
## Path 19: 24 19 31 9 12 11 21 6 18 16 20 4 22 30 25 13 14 27 26 10 23 29 28 17 -15
## Path 20: 25 19 31 24 9 12 21 11 18 16 6 20 4 30 13 22 14 27 26 10 23 29 28 17 -15
## Path 21: 26 9 31 19 24 12 16 21 20 18 11 25 13 6 27 22 30 15 4 10 28 29 14 17 -23
## Path 22: 27 9 31 12 19 24 26 16 20 21 11 18 25 6 22 13 30 15 4 10 28 29 14 17 -23
## Path 23: 28 19 31 9 24 12 11 21 6 18 16 20 4 22 13 29 30 25 27 26 10 14 23 17 -15
## Path 24: 29 19 9 12 24 11 21 6 18 16 20 4 22 13 25 30 31 28 27 26 10 14 23 17 -15
## Path 25: 30 19 9 12 24 11 21 6 18 16 20 4 22 31 25 13 14 27 26 10 23 29 28 17 -15
## Path 26: 31 19 9 12 24 11 21 6 18 16 20 4 22 30 25 13 14 27 26 10 23 29 28 17 -15
##
## Terminal models:
##
## info(sc) logl n k
## spec 1: 0.2954336 -213.8080 1648 8
## spec 2: 0.2985068 -212.6366 1648 9
## spec 3: 0.2772833 -198.8521 1648 8
## spec 4: 0.2797328 -200.8706 1648 8
##
## Retained regressors (final model):
##
## vconst arch1 arch2 arch4 arch6 arch7 arch22 op2_dk2_exp
## % Date: Fri Sep 13 18:52:25 2024
## % LaTeX code generated in R 4.3.1 by the gets package
## % Note: The {eqnarray} environment requires the {amsmath} package
## \begin{eqnarray}
## \widehat{e} &=& \underset{(0.0242)}{0.4963} + \underset{(0.0243)}{0.3142}arch1 + \underset{(0.0232)}{0.1028}arch2 + \underset{(0.0243)}{0.1105}arch4 + \underset{(0.0242)}{0.1187}arch6 + \underset{(0.0206)}{0.1009}arch7 + \underset{(0.0581)}{0.0445}arch22 + \underset{(NA)}{0.3547}op2_dk2_exp - \underset{(NA)}{1.1338}Elnz2 \\[2mm]
## && R^2=NA \qquad \widehat{\sigma}=0.3225 \qquad LogL=-198.8521 \qquad T = 1648 \nonumber \\
## \end{eqnarray}
## # A tibble: 1,816 × 6
## date p_dk2_price p_dk2_load p_dk2_wind p_dk2_pen p_dk2_exp
## <date> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 2010-01-01 3.70 7.48 5.03 -2.43 0.223
## 2 2010-01-02 3.99 7.63 5.11 -2.51 0.156
## 3 2010-01-03 3.84 7.61 3.55 -4.05 0.389
## 4 2010-01-04 4.53 7.75 5.58 -2.17 0.532
## 5 2010-01-05 4.18 7.82 4.39 -3.43 0.317
## 6 2010-01-06 4.00 7.75 4.25 -3.50 0.374
## 7 2010-01-07 5.23 7.75 4.39 -3.36 0.528
## 8 2010-01-08 6.13 7.76 5.33 -2.43 0.761
## 9 2010-01-09 3.98 7.62 6.32 -1.30 0.955
## 10 2010-01-10 3.88 7.65 6.38 -1.27 0.839
## # ℹ 1,806 more rows
## GUM log-variance equation:
##
## reg.no. keep coef std.error t-stat p-value
## vconst 1 1 1.1875288 2.5104695 0.2238 0.6361914
## arch1 2 0 0.2314478 0.0251879 9.1888 < 2.2e-16 ***
## arch2 3 0 -0.0088724 0.0258884 -0.3427 0.7318545
## arch3 4 0 0.0122561 0.0259321 0.4726 0.6365467
## arch4 5 0 0.0348852 0.0259145 1.3462 0.1784378
## arch5 6 0 0.0201776 0.0259228 0.7784 0.4364636
## arch6 7 0 0.0916076 0.0258672 3.5415 0.0004092 ***
## arch7 8 0 0.1308197 0.0259548 5.0403 5.171e-07 ***
## arch8 9 0 0.0727556 0.0262266 2.7741 0.0055990 **
## arch9 10 0 -0.0237685 0.0262812 -0.9044 0.3659228
## arch10 11 0 0.0041139 0.0262526 0.1567 0.8754963
## arch11 12 0 -0.0474794 0.0261955 -1.8125 0.0700945 .
## arch12 13 0 -0.0489032 0.0260989 -1.8738 0.0611428 .
## arch13 14 0 -0.0454825 0.0257888 -1.7637 0.0779792 .
## arch14 15 0 0.1234011 0.0258799 4.7682 2.026e-06 ***
## arch15 16 0 -0.0284508 0.0260323 -1.0929 0.2745990
## arch16 17 0 -0.0012508 0.0259948 -0.0481 0.9616282
## arch17 18 0 0.0078056 0.0259769 0.3005 0.7638482
## arch18 19 0 0.0018469 0.0257982 0.0716 0.9429364
## arch19 20 0 0.0251884 0.0256157 0.9833 0.3255973
## arch20 21 0 0.0155266 0.0256943 0.6043 0.5457408
## arch21 22 0 0.0638206 0.0256656 2.4866 0.0129965 *
## arch22 23 0 0.0186836 0.0256594 0.7281 0.4666344
## arch23 24 0 0.0051734 0.0256868 0.2014 0.8404083
## arch24 25 0 -0.0533515 0.0249747 -2.1362 0.0328112 *
## logEqWMA(12) 26 0 0.2804223 0.1544053 1.8161 0.0695334 .
## logEqWMA(24) 27 0 -0.1798325 0.1603252 -1.1217 0.2621680
## logEqWMA(168) 28 0 0.0771495 0.1064656 0.7246 0.4687762
## p_dk2_load 29 0 -4.7502740 4.7773468 -0.9943 0.3202096
## p_dk2_wind 30 0 4.6473945 4.7496355 0.9785 0.3279864
## p_dk2_pen 31 0 -4.6051315 4.7486800 -0.9698 0.3323058
## p_dk2_exp 32 0 0.3639357 0.0733755 4.9599 7.795e-07 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Diagnostics:
##
## Chi-sq df p-value
## Ljung-Box AR(1) 438.746 1 0.000e+00
## Ljung-Box ARCH(25) 77.133 25 3.189e-07
## 26 path(s) to search
## Searching: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
##
## Path 1: 3 19 17 11 24 18 4 21 6 23 28 10 27 31 29 30 20 16 13 26 12 14 5 25 22 9
## Path 2: 4 19 17 11 24 3 18 21 6 23 28 10 27 31 29 30 20 16 13 26 12 14 5 25 22 9
## Path 3: 5 17 11 24 18 19 3 21 23 4 28 10 31 29 27 30 20 16 6 13 12 26 14 25 22 9
## Path 4: 6 19 17 11 24 18 3 4 21 23 28 10 27 31 29 30 20 16 13 26 12 14 5 25 22 9
## Path 5: 9 11 19 24 17 3 4 18 10 21 6 16 28 31 29 30 23 27 20 13 5 12 14 25 26 22
## Path 6: 10 11 19 24 17 18 3 4 21 28 6 23 27 31 29 30 20 16 13 26 12 14 5 25 22 9
## Path 7: 11 17 19 24 3 18 4 21 6 23 28 10 27 31 29 30 20 16 13 26 12 14 5 25 22 9
## Path 8: 12 17 11 18 19 24 3 4 21 28 6 10 31 29 23 27 20 30 16 26 13 14 5 25 22 9
## Path 9: 13 19 17 24 11 18 3 21 4 6 23 28 10 27 20 31 29 30 16 26 12 14 5 25 22 9
## Path 10: 14 17 19 11 24 3 18 21 4 6 28 31 29 23 16 30 10 20 27 12 26 13 5 25 22 9
## Path 11: 16 19 11 24 17 3 18 4 21 23 6 28 31 29 30 10 27 20 13 26 12 14 5 25 22 9
## Path 12: 17 19 11 24 3 18 4 21 6 23 28 10 27 31 29 30 20 16 13 26 12 14 5 25 22 9
## Path 13: 18 17 19 11 24 3 4 21 6 23 28 10 27 31 29 30 20 16 13 26 12 14 5 25 22 9
## Path 14: 19 17 11 24 3 18 4 21 6 23 28 10 27 31 29 30 20 16 13 26 12 14 5 25 22 9
## Path 15: 20 17 11 24 19 3 18 4 23 21 27 10 28 31 29 30 6 16 13 26 12 14 5 25 22 9
## Path 16: 21 17 19 11 24 18 3 4 6 23 28 10 27 31 29 30 20 16 13 26 12 14 5 25 22 9
## Path 17: 22 19 17 11 24 3 18 4 27 20 10 31 29 28 6 30 16 23 21 14 12 26 13 5 25 9
## Path 18: 23 17 19 11 18 3 24 4 21 6 28 10 27 31 29 30 20 16 13 26 12 14 5 25 22 9
## Path 19: 24 17 19 11 3 18 4 21 6 23 28 10 27 31 29 30 20 16 13 26 12 14 5 25 22 9
## Path 20: 25 18 19 11 17 24 4 3 28 21 6 23 31 29 30 16 10 20 14 5 12 27 26 13 22 9
## Path 21: 26 24 3 18 19 17 21 11 23 10 27 20 4 31 29 28 30 12 6 16 13 14 5 25 22 9
## Path 22: 27 24 19 18 17 11 3 21 23 4 28 10 6 31 29 30 20 16 13 26 12 14 5 25 22 9
## Path 23: 28 17 19 11 24 3 18 4 21 6 23 10 27 31 29 30 20 16 13 26 12 14 5 25 22 9
## Path 24: 29 19 17 11 30 24 18 3 4 21 6 23 28 10 27 31 20 16 13 26 12 14 5 25 22 9
## Path 25: 30 19 17 11 24 29 18 3 4 21 6 23 28 10 27 31 20 16 13 26 12 14 5 25 22 9
## Path 26: 31 19 17 11 24 18 3 29 4 21 6 23 28 10 27 30 20 16 13 26 12 14 5 25 22 9
##
## Terminal models:
##
## info(sc) logl n k
## spec 1 (1-cut): 0.5295833 -414.1547 1648 6
##
## Retained regressors (final model):
##
## vconst arch1 arch6 arch7 arch14 p_dk2_exp
## % Date: Fri Sep 13 18:52:26 2024
## % LaTeX code generated in R 4.3.1 by the gets package
## % Note: The {eqnarray} environment requires the {amsmath} package
## \begin{eqnarray}
## \widehat{e} &=& \underset{(0.0226)}{0.0993} + \underset{(0.0237)}{0.2617}arch1 + \underset{(0.0245)}{0.1026}arch6 + \underset{(0.0234)}{0.1599}arch7 + \underset{(0.0707)}{0.1255}arch14 + \underset{(NA)}{0.3724}p_dk2_exp - \underset{(NA)}{1.1780}Elnz2 \\[2mm]
## && R^2=NA \qquad \widehat{\sigma}=0.3222 \qquad LogL=-414.1547 \qquad T = 1648 \nonumber \\
## \end{eqnarray}